gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 20:02:56 26 4
gpt4 key购买 nike

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

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com