gpt4 book ai didi

javascript - 为什么JavaScript中的 "this"说是隐式参数?

转载 作者:行者123 更新时间:2023-11-29 14:57:56 25 4
gpt4 key购买 nike

我想知道为什么在书里 Secrets of the JavaScript Ninja by John Resig ,页。 48、据说:

Whenever a function is invoked, ... an implicit parameter named this is also passed to the function.

我有点疑惑,因为之前,我读到this实际上是一个关键字。也许这并不重要,除非我们尝试

function f() {
this = {};
}

f();

然后 Chrome 或 Node.js 将引发错误,指出它是赋值中的无效左侧。因此,如果 this 实际上是一个隐式参数,那么该行不应引发错误?所以我想知道这本书是否真的有关于 this 的错误,而应该不是这样?

(更新:我还重新检查了 JavaScript:权威指南第 6 版和 ECMA-262,它们都说 this 是关键字)...

最佳答案

这确实是一个隐式论证,因为如果你写:

var foo = {
bar: function() {
console.log(this); // Will be foo.
}
};

foo.bar();

this 隐式绑定(bind)到 bar() 内的 foo,就好像您已经显式地写了:

foo.bar.call(foo);

关于javascript - 为什么JavaScript中的 "this"说是隐式参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848116/

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