覆盖JavaScript类中的JavaScript类原型

时间:2017-11-07 05:47:02

标签: javascript prototype-programming

我试图覆盖文字类原型函数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();

0 个答案:

没有答案