我在阅读源代码时遇到一个问题。代码示例如下:
// ... some code omitted
function p() {var u=new i();this. $Arbiter0=new s(); this.$Arbiter3=[];}
p.prototype.subscribe = function() { ... }
p.call(p) // <-- what is the purpose of this statement?
我是 JavaScript 新手。我从教科书中读到,当您使用 Function.call(Function) 时,通常意味着借用另一个函数构造函数,以便执行一些代码重用/继承的操作。但是,我不确定在此代码示例中这样做的目的是什么,我的意思是,函数正在调用函数本身?
澄清:
我知道 Function.call() 的用法。我只是想知道,执行 foobar.call(foobar) 的好处是什么?
====
完整源码如下:
https://fbstatic-a.akamaihd.net/rsrc.php/v2/y6/r/USEL5meM70H.js
在该源代码中搜索“p.call(p)”。该文件中仅出现一次。
====
谢谢。
最佳答案
p.call(p)
具有调用函数 p
的效果,使得函数体内的 this
的值, 是函数本身。
这允许您从函数内部向函数添加属性。
Function.call的相关文档可以找到here .
由于这是缩小的代码,因此该构造可能是缩小过程的产物。看来这里的意图是初始化p
;它可能正在设置用于存储订阅者的数据结构。
关于javascript - 函数调用函数本身作为 foobar.call(foobar) 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316292/