gpt4 book ai didi

Javascript - 在非严格模式下绑定(bind) `this`

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

<分区>

在下面的学习者代码中,调用下面的 foo() 预计会返回 "bar1",基于以下理解,即在非严格模式下, this 关键字根据 default binding 规则和严格模式下的 undefined 绑定(bind)到全局。

function foo(){
console.log(this.bar);
}
var bar = 'bar1';
var o1 = {bar: 'bar2', foo: foo};
var o2 = {bar: 'bar3', foo: foo};

foo(); // expect 'bar1' - default binding
o1.foo(); // expect 'bar2' - implicit binding
o2.foo(); // expect 'bar3' - implicit binding

然而,在调用 foo() 时,我在控制台中得到了 undefinedo1.foo()o2.foo() 基于隐式绑定(bind) 的行为符合预期。在我看来,绑定(bind)正在按预期工作,但 bar 变量永远不会粘在全局上。

我在节点 6 中运行脚本

> node script.js
undefined
bar2
bar3

注意:- 在浏览器中它给出了预期的输出。

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