gpt4 book ai didi

javascript - javascript 中 x 的两个不同值

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:10:28 24 4
gpt4 key购买 nike

为什么第一个警报显示 3 而第二个警报显示 1?我意识到 this 改变了作用域,但 go()foo.baz.bar() 调用的不是同一个东西吗?

var x = 3;

var foo = {
x: 2,
baz: {
x: 1,
bar: function() {
return this.x;
}
}
}

var go = foo.baz.bar;

alert(go());
alert(foo.baz.bar());

最佳答案

第一个警报的执行上下文是 Window 对象。第二个警报的执行上下文是名为 bar 的函数。就是这样。执行上下文是需要理解的一点。

详情如下:https://tc39.github.io/ecma262/#sec-execution-contexts

关于javascript - javascript 中 x 的两个不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49661339/

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