为什么我不能覆盖" javascript中的方法?

时间:2015-04-29 13:37:00

标签: javascript node.js override

我想通过将JS对象的函数添加到其原型来覆盖它的函数。

var originalObject = function(){
    this.someFun = function(){
        // ...
    }
}

var otherObj = function(){
    this.otherFun = function(){
        originalObject.prototype.fun =  function(){
            return 'This is the overwritten function.';
        }
        var o = new originalObject();
        return o.fun()
    }
}

这样当我执行new otherObj().otherFun()时,我会得到预期的结果( '这是被覆盖的功能。' ),但是如果我尝试添加的功能已经是originalObject

的一部分
var originalObject = function(){
    this.fun = function(){
        return 'This is the original function';
    }
    this.someFun = function(){
        // ...
    }
}

然后结果不是预期结果,实际上new otherObj().otherFun()返回 '这是原始功能'

那么,this是将方法添加到原型并覆盖它的唯一方法吗?最重要的是我为什么不能覆盖"原型中的功能?

0 个答案:

没有答案