var Foo = require('Foo');
Foo.prototye.componentDidMount = () => {};
我导入了Foo,但是对于我使用它的情况,我想覆盖它的原型上的componentDidMount函数。我知道这是一个黑客:(
如果我这样做,我担心在使用Foo的其他情况下,它的原型也将被更改。
有没有办法基本上“范围”将原型更改到此文件中?
答案 0 :(得分:1)
没有。构造函数全局存在。但是,如果您有权访问其构造函数,则可以创建Foo的子类。在您的示例中,似乎正在导入Foo 实例,而不是构造函数,因此我不确定这是一个选项。但这就是你要做的事情。
function Bar() {
// ...
}
Bar.prototype = new FooConstructor(); // Must be a separate instance!
Bar.prototype.bar = () => {};
var MyFooExtension = new Bar();
编辑:忘了,大多数对象都应该有constructor
属性。所以你可以替换这一行:
Bar.prototype = new Foo.constructor();