问题是,当我使用 test.call() 时,它会调用原型(prototype)的调用实现,但是当我使用 test() 时,它不会调用 call()。我希望能够使用测试来触发prototype.call()。代码如下:
Function.prototype.call = function () {
//do something...
return this(); // call original method
}
function test() {
alert("test");
}
test.call(); //calls prototype.call()
test(); //doesnt call prototype.call()
最佳答案
为什么您希望 test()
调用 Function.prototype.call
?它们是不同的功能。
每次调用函数时,不会调用您覆盖的 native .call()
方法。仅当您调用它时才会调用它。
调用.call()
确实会调用test()
,因为这就是它的设计目的。它需要一个函数作为其上下文(this
值),并调用该函数。但这并不意味着 .call()
与任何其他函数调用有任何关系。
关于javascript - 在javascript中调用prototype.call函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10534833/