Javascript 如何避免继承

Javascript 如何避免继承,javascript,Javascript,我有一个名为a的对象,我几乎一直在使用它 然后“b”出现时很尴尬,我需要在打电话通知之前做一些其他事情 什么是最好的函数/原型方法?在面向对象中,获取相同的东西调用父对象(我理解如果不使用Javascript类,这是不可能的-如果我错了,请纠正我) 不太清楚你在问什么。你只是在找我吗 const notify_orig = b.notify; b.notify = () => { doCoolStuffFirst(); notify_orig.call(b); } 正如你

我有一个名为
a
的对象,我几乎一直在使用它

然后“b”出现时很尴尬,我需要在打电话通知之前做一些其他事情

什么是最好的函数/原型方法?在面向对象中,获取相同的东西调用父对象(我理解如果不使用Javascript类,这是不可能的-如果我错了,请纠正我)


不太清楚你在问什么。你只是在找我吗

const notify_orig = b.notify;
b.notify = () => {
    doCoolStuffFirst();
    notify_orig.call(b);
}

正如你所说,上课很容易:

class A {
  notify() {
    doSomethingCool();
  }
}

class B {
  notify() {
    doCoolStuffFirst();
    super.notify();
  }
}
如果没有ES6课程,你将经历一段艰难的旅程。ES6编译器将
super.notify()

_get(
   B.prototype.__proto__ ||
   Object.getPrototypeOf(B.prototype),
   "notify", this
).call(this);

(使用
\u get
是一种巨大的实用方法,可以平滑不同类型的值、继承和内容的粗糙边缘)。这并不是不可能的,这已经够复杂了,你可能不想一个人做这件事。

不使用
\uuuu proto\uuuu
类(ES6中的语法糖)

函数doSomethingCool(){
log(“酷的东西”);
}
函数doCoolStuffFirst(){
log(“酷东西优先”);
}
设a={};
a、 通知=()=>{
doSomethingCool();
}
a、 通知();
设b=Object.create(a)
b、 通知=(()=>{
让notifySuper=b.notify;//对“super”方法的引用
return()=>{
docooltuffirst();
notifySuper();
}
})();
b、 通知()_get(
   B.prototype.__proto__ ||
   Object.getPrototypeOf(B.prototype),
   "notify", this
).call(this);