6

我有以下模式

BASE = function () {
    var that = {};
    var number = 10;

    that.showNumber = function(){
        that.alertNumber();
    }

    that.alertNumber = function () {
        alert(number);
    };    
    return that;
};

CHILD = function () {
    var that = Object.create(BASE());
    var secondNumber = 20;

    // Override base function
    that.alertNumber = function () {
        alert(secondNumber);
    };
    return that;
};

var ch = CHILD();
ch.showNumber();

您能告诉我如何调整受 Douglas CrockFord 启发的模块模式以完全覆盖alerNumber功能吗?到目前为止showNumber,函数显示 10 而不是 20。

谢谢大家先进

带有代码的 JSFiddle 在这里

4

1 回答 1

5

你可以改变

that.showNumber = function(){
    that.alertNumber();
}

that.showNumber = function(){
    this.alertNumber();
}

但我不确定我明白为什么你不简单地使用基于原型的继承模型

于 2013-05-31T14:26:27.800 回答