javascript - 更改所需 React 组件的原型(prototype)

标签 javascript reactjs

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

我导入了 Foo,但对于我使用它的情况,我想重写其原型(prototype)上的 componentDidMount 函数。我知道这是一个 hack:(

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

有没有一种方法可以在本质上将原型(prototype)更改“范围”更改到此文件中?

最佳答案

没有。构造函数全局存在。但是,如果您有权访问其构造函数,则可以创建 Foo 的子类。在您的示例中,似乎正在导入 Foo instance,而不是构造函数,所以我不确定这是不是一个选项。但这是您要做的。

function Bar() {
  // ...
}
Bar.prototype = new FooConstructor(); // Must be a separate instance!
Bar.prototype.bar = () => {};
var MyFooExtension = new Bar();

编辑:忘记了,大多数对象都应该有一个constructor 属性。所以你可以替换这一行:

Bar.prototype = new Foo.constructor(); 

关于javascript - 更改所需 React 组件的原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30582995/

相关文章:

javascript - Safari 在自动填写信用卡信息时崩溃

javascript - 禁用基于 Angular 方法的选项

javascript - 如何从javascript中的字符串构建数组?

javascript - 滚动后如何放置窗口中心的div

javascript - 重构 JS 对象数组

javascript - 如何使用 FFmpeg 将专辑封面添加到 mp3 流?

reactjs - 如何调整 Material 表的宽度?

javascript - 向 'textAlign' 提供失败的 prop 类型 : Invalid props. 样式 key 'View'

javascript - Reactjs map 和使用API​​的问题,浏览器没有显示任何内容

javascript - React,如何仅更新使用 useState Hook 的对象中的一个属性?