javascript - 函数调用函数本身作为 foobar.call(foobar) 的目的是什么?

标签 javascript facebook-javascript-sdk

我在阅读源代码时遇到一个问题。代码示例如下:

// ... 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/

相关文章:

Javascript 匹配并替换为 unicode

javascript - 将 javascript 应用程序部署到 heroku 后,该脚本不起作用

facebook - cordova-plugin-facebook4 - 带有 "Not Logged In: You are not logged in. Please login and try again"的空白对话框

javascript - 从 Facebook Canvas 页面重定向到网站

javascript - Facebook 图形 API : Handling Timeouts and Errors

ios - FB.login()phonegap facebook 插件出错

javascript - 为什么 javascript 中的 `btoa` 编码适用于 20 位字符串而不是 20 位 int?

javascript - 检测控件的 "Class"属性何时更改的任何事件

php - 无法接收 php 文件中的 POST 数据

Facebook API,向用户时间轴发送帖子