javascript - 在javascript中调用prototype.call函数

标签 javascript oop

问题是,当我使用 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/

相关文章:

Python OOP - 类关系

c++ - 它是功能继承还是其他什么?

javascript - 将 bootstrap popover 保持在视口(viewport)内

javascript - 悬停 div 另一个 div 出现在顶部

javascript - 批处理 - 启动 Internet Explorer 并将网站内容保存到 Sript/variable/array

c# - 调用方法并直接读取/设置参数的私有(private)字段是否会破坏封装?

python - API 中对象启动的 OO 设计模式

javascript - 从 0 开始 Chart.js 时间刻度

javascript - jQuery.bind() 和 jQuery.on() 有什么区别?

java - Try-catch 在执行 SQL 查询时忽略变量的赋值