gpt4 book ai didi

javascript - 为什么它已经是一个窗口属性?

转载 作者:行者123 更新时间:2023-12-03 07:30:52 25 4
gpt4 key购买 nike

为什么 foo 是 window 的一个属性,因为它直到几行之后才被使用或初始化

for(var propName in window) {
if(propName == 'foo') { //obv defined if its here
console.log('WTF? Its already a part of window!!');
}
}
console.log(typeof foo);
var foo = 'bar';

最佳答案

您的代码实际上看起来像这样,因为 var top hoisting .

当您全局声明变量时,它是this对象隐式的一部分。因此,您的 foo 变量是 window 对象的一部分,该对象由 this 对象引用。

var foo;
for (var propName in window) {
if (propName == 'foo') { //obv defined if its here
console.log('WTF? Its already a part of window!!');
}
}

console.log(typeof foo);
foo = 'bar';

this===window //true in this case

关于javascript - 为什么它已经是一个窗口属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803852/

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