Javascript 如何使用es6语法重载库类

Javascript 如何使用es6语法重载库类,javascript,inheritance,ecmascript-6,Javascript,Inheritance,Ecmascript 6,我的projet中有不同的对象,这些对象扩展了库中的其他对象。 库的对象扩展了库的对象类 因此,我们有以下体系结构: // The library object class class Object { } // The library object1 class that extends object library class class Object1 extends Object{ } // The library object2 class that extends objec

我的projet中有不同的对象,这些对象扩展了库中的其他对象。 库的对象扩展了库的对象类

因此,我们有以下体系结构:

// The library object class
class Object {

}

// The library object1 class that extends object library class
class Object1 extends Object{

}

// The library object2 class that extends object library class
class Object2 extends Object{

}


// My object class that extends Object1 library class
class MyObject extends Object1{

}

// My second object class that extends Object2 library class
class MySecondObject extends Object2{

}
我的问题是,如何使用es6语法在我使用的库的“Object”类中添加方法,而不修改库(节点模块)的代码

在es5中,我将执行以下操作:

MyLib.Object.prototype.myNewMethod = function () {
}
为了使

const o = new MyObject();
o.myNewMethod();
const o2 = new MySecondObject();
o2.myNewMethod();

谢谢你的帮助。

这就是你要找的吗

// The library object class
class Object {
  myNewMethod() {}
}
即使使用ES6,您仍然可以使用
Object.prototype

Object.prototype.myNewMethod = function() {}
但正确的方法是让原始基类保持原样,并使用继承

class Object1 extends Object {
  myNewMethod() {}
}

这就是你要找的吗

// The library object class
class Object {
  myNewMethod() {}
}
即使使用ES6,您仍然可以使用
Object.prototype

Object.prototype.myNewMethod = function() {}
但正确的方法是让原始基类保持原样,并使用继承

class Object1 extends Object {
  myNewMethod() {}
}

不是真的,这样做我必须更改库的代码。我正在寻找一种方法,使用es6语法从代码中向库“object”类中添加方法。为了在所有扩展了“Object1”类的my对象中使用“newMethod”,您必须使用es6语法吗?为什么不仅仅是
YourClass.prototype.myMethod
?另一方面,这也是一个错误的答案,修补库不是一个好主意,相反,用您需要的方法扩展您的自定义类。我不必使用es6语法。我好奇的一面是寻找一种方法在es6I中编写它。我有10个不同的类扩展了库对象类,在我的所有类中,新方法必须做完全相同的工作。这就是为什么我要寻找一种方法将其添加到我扩展的库“Object”类中的原因。我正在寻找一种方法,使用es6语法从代码中向库“object”类中添加方法。为了在所有扩展了“Object1”类的my对象中使用“newMethod”,您必须使用es6语法吗?为什么不仅仅是
YourClass.prototype.myMethod
?另一方面,这也是一个错误的答案,修补库不是一个好主意,相反,用您需要的方法扩展您的自定义类。我不必使用es6语法。我好奇的一面是寻找一种方法在es6I中编写它。我有10个不同的类扩展了库对象类,在我的所有类中,新方法必须做完全相同的工作。这就是为什么我正在寻找一种方法将其添加到我扩展的库“Object”类中。为什么您更喜欢修改库对象而不是使用中间类?优势是什么?一般来说,“猴子修补”你不拥有的东西被认为是不好的做法。我编辑了我的问题。我的对象不扩展相同的库类。看看为什么您更喜欢修改库对象而不是拥有一个中间类?优势是什么?一般来说,“猴子修补”你不拥有的东西被认为是不好的做法。我编辑了我的问题。我的对象不扩展相同的库类。看一看