我的项目中有不同的对象,这些对象扩展了库中的其他对象。 库的对象扩展了库的Object类。
所以我们有以下架构:
// 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语法在我使用的库的“对象”类中添加方法。
在es5中,我将执行以下操作:
MyLib.Object.prototype.myNewMethod = function () {
}
为了制作
const o = new MyObject();
o.myNewMethod();
const o2 = new MySecondObject();
o2.myNewMethod();
感谢帮助。
答案 0 :(得分:0)
是您要找的东西吗?
// The library object class
class Object {
myNewMethod() {}
}
即使使用ES6,您仍然可以使用Object.prototype
Object.prototype.myNewMethod = function() {}
但是正确的方法是让原始基类保持原样,并使用继承。
class Object1 extends Object {
myNewMethod() {}
}