我想通过将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是将方法添加到原型并覆盖它的唯一方法吗?最重要的是我为什么不能覆盖"原型中的功能?