javascript - 在javascript中,新的对象函数如何扩展同名的原型(prototype)函数?

标签 javascript object prototype-programming

创建对象时,我希望使用新函数扩展现有原型(prototype)函数的功能。新函数需要调用原来的原型(prototype)函数来执行,但它们显然在同一个命名空间中。

Obj = function(i,newFn) {
   this.i = i;
   if( newFn ) this.fn = newFn;
}
Obj.prototype.fn = function(a) { return a+this.i; }

o1 = new Obj1( 3, function(a) { if( a<0 ) return 0; return ORIGINAL.fn(a) } );

如果 ORIGINAL 是 this.fno1.fn 变为非终止递归

如何从 o1.fn() 中引用 Obj.prototype.fn()

<小时/>

按照@PeterOlsen 回答,

o1 = new Obj1( 3, function(a) { return Obj.prototype.fn.call(this,a) } );

最佳答案

how do I reference Obj.prototype.fn() from within o1.fn()?

很简单,用Obj.prototype.fn引用它。

关于javascript - 在javascript中,新的对象函数如何扩展同名的原型(prototype)函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7136611/

相关文章:

java - 在 ArrayList 中找不到对象

javascript - 您可以使用字符串模板文字将整个对象作为字符串返回吗?

javascript - __proto__,什么时候会消失?备择方案?

ruby - 返回 Ruby 中对象的 yield 的方法

javascript - VUE : Disable buttons until animation ends

javascript - 在javascript数组中显示mysql结果

javascript - 如何使用 Chakra UI 在页面加载时显示模式框?

JavaScript 实例函数与原型(prototype)函数

javascript - 为什么 'this' 始终是 Javascript 类原型(prototype)中的窗口

javascript - 通过 javascript 实现无限函数