gpt4 book ai didi

javascript - 从根本上来说,为什么函数声明的 'this' 绑定(bind)的执行上下文设置为全局对象?

转载 作者:行者123 更新时间:2023-12-01 00:12:00 25 4
gpt4 key购买 nike

似乎无法理解这一点。

我尝试推理解释:

函数声明(如 var 声明)绑定(bind)到全局对象环境记录 (OER)。

全局 OER 与全局对象同步。

全局对象将函数作为属性。

因此,该函数通过 globalObj.function 隐式调用(并且该调用确定“this”)

https://tc39.es/ecma262/#sec-global-environment-records

最佳答案

不,这与函数作为全局对象的“属性”无关(尽管从历史上看,这可能是灵感,我不知道)。

函数中的 this 值在 OrdinaryCallBindThis procedure 中设置在函数调用期间,您引用的行为取决于严格模式。在草率模式下,如果 ThisArgumentundefinednull(这是普通 someFunction() 的情况)调用),它将使用全局对象(或更准确地说,GlobalThisValue)。

关于javascript - 从根本上来说,为什么函数声明的 'this' 绑定(bind)的执行上下文设置为全局对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60019102/

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