Javascript 如何从元素中获取窗口属性 场地3 var arr=[] 用于(窗口中的变量i) { arr.push(一) } console.log(窗口中的“a”)//true console.log(arr)//没有属性a为什么?!
但是当我运行console.log(arr)时,我的数组中没有,为什么?这些属性不一定是Javascript 如何从元素中获取窗口属性 场地3 var arr=[] 用于(窗口中的变量i) { arr.push(一) } console.log(窗口中的“a”)//true console.log(arr)//没有属性a为什么?!,javascript,Javascript,但是当我运行console.log(arr)时,我的数组中没有,为什么?这些属性不一定是窗口的“自有”属性,并且(这是有效位)不一定是可枚举的for in仅访问可枚举属性(“自己的”和继承的) 例如,在Chrome上,自动aglobal是window原型的一个属性,它被标记为不可枚举: var o=window; var where=“窗口” while(o&&!Object.getOwnPropertyDescriptor(o,“a”)){ where=“原型”+where; o=Objec
窗口的“自有”属性,并且(这是有效位)不一定是可枚举的<代码>for in
仅访问可枚举属性(“自己的”和继承的)
例如,在Chrome上,自动a
global是window
原型的一个属性,它被标记为不可枚举:
var o=window;
var where=“窗口”
while(o&&!Object.getOwnPropertyDescriptor(o,“a”)){
where=“原型”+where;
o=Object.getPrototypeOf(o);
}
控制台日志(其中);
log(Object.getOwnPropertyDescriptor(o,“a”)代码>
不一定是窗口的“自有”属性,并且(这是有效位)不一定是可枚举的<代码>for in
仅访问可枚举属性(“自己的”和继承的)
例如,在Chrome上,自动a
global是window
原型的一个属性,它被标记为不可枚举:
var o=window;
var where=“窗口”
while(o&&!Object.getOwnPropertyDescriptor(o,“a”)){
where=“原型”+where;
o=Object.getPrototypeOf(o);
}
控制台日志(其中);
log(Object.getOwnPropertyDescriptor(o,“a”)代码>
你到底想实现什么?我确实想得到a并将其推到arr中你想解决什么更高级别的问题?看看我的代码,如果你知道为什么arr没有元素“a”,这将是特定于浏览器的,规范只说“全局对象可能有其他主机定义的属性…”,作为全局对象一部分的命名元素由供应商决定,并且是由Microsoft多年前引入的,没有标准化,可以不同的实现你到底想实现什么?确切地说,我想得到a并将其推到arr中,你想解决什么更高级别的问题?看看我的代码,如果你知道为什么arr没有元素“a”,这将是特定于浏览器的,规格说明就是这么说的“全局对象可能有其他主机定义的属性…”,而作为全局对象一部分的命名元素则由供应商决定,并且是由Microsoft多年前引入的,没有标准化,可以通过不同的方式实现,那么为什么“a“是在原型窗口的原型中,而不是在窗口的原型中?@MankamentGra:根据上面的描述,它位于窗口的原型上。我不知道,在这一点上,我们进入了实现细节,但是窗口
非常复杂,从许多不同的地方获取东西,合并了,等等。我不奇怪发现它有三个层。好吧,那么为什么是“a”是在原型窗口的原型中,而不是在窗口的原型中?@MankamentGra:根据上面的描述,它位于窗口的原型上。我不知道,在这一点上,我们进入了实现细节,但是window
非常复杂,从许多不同的地方获取东西,合并了,等等。我并不惊讶地发现它有三层。
<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>