gpt4 book ai didi

javascript - 如何从元素获取窗口属性

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

<body>
<h1 id="a">Site 3</h1>

<script>

var arr = []

for(var i in window)
{
arr.push(i)
}
console.log("a" in window)// true
console.log(arr)// dont have property a why?!
</script>

</body>

但是当我运行 console.log(arr) 时,数组中没有 a ,为什么?

最佳答案

things accessible on window不一定是window“自己的”属性,并且(这是重要位)不一定是可枚举的for-in 仅访问可枚举属性(“自己的”属性和继承的属性)。

例如,在 Chrome 上,自动 a 全局变量是 window 原型(prototype)的原型(prototype)属性,并且它被标记为不可枚举:

var o = window;
var where = "window"
while (o && !Object.getOwnPropertyDescriptor(o, "a")) {
where = "prototype of " + where;
o = Object.getPrototypeOf(o);
}

console.log(where);
console.log(Object.getOwnPropertyDescriptor(o, "a"));
<div id="a"></div>

看起来它在 Firefox 上的位置相同。

只要 in 有效并且 window.a 有效,如何实现命名访问的确切语义就没有规定。

关于javascript - 如何从元素获取窗口属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40331613/

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