我试图覆盖文字类原型函数doSomething
编辑类在txt
函数中使用文字初始化其_initText
。
问题是我的覆盖代码从未被真正采用并覆盖原始代码。
没有错误,当我运行editor.txt.doSomething()
时,它仍会打印"旧消息"。
请帮助您了解如何在JavaScript中覆盖此类型的原型。非常感谢。
editor.js内
<!-- language: lang-js -->
function Text(editor) {
this.editor = editor;
}
Text.prototype = {
constructor: Text,
init: function init() {
this.doSomething();
},
doSomething: function doSomething() {
console.log('old message');
},
};
function Editor(editor) {
this.editor = editor;
}
Editor.prototype = {
constructor: Editor,
_initText: function _initText() {
this.txt = new Text(this);
this.txt.init();
},
init: function init() {
this._initText();
}
};
extension.js
<!-- language: lang-js -->
// When DOM is loaded
Text.prototype.doSomething = function() {
console.log('new message');
};
的index.html
<!-- language: lang-html-->
// When DOM is loaded
editor = new Editor();
editor.init();