改变所需React组件的原型

时间:2015-06-01 20:47:08

标签: javascript reactjs

var Foo = require('Foo');
Foo.prototye.componentDidMount = () => {};

我导入了Foo,但是对于我使用它的情况,我想覆盖它的原型上的componentDidMount函数。我知道这是一个黑客:(

如果我这样做,我担心在使用Foo的其他情况下,它的原型也将被更改。

有没有办法基本上“范围”将原型更改到此文件中?

1 个答案:

答案 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();