在浏览器中运行(ES5+)
var propCount = Object.keys(navigator).length;
console.log(propCount); // 0
如果你对这样的普通对象这样做
let obj = {
foo: 'bar',
breaking: 'bad'
}
let propCount = Object.keys(obj).length;
console.log(propCount); // 2
为什么会这样?
很抱歉,如果它可能与另一个问题有关,例如当 Object.keys(obj)
仅针对不包含 functions/arrays
的简单对象计算它时,但这我第一次遇到它。
并想知道其中的原因。
最佳答案
Object.keys() 函数返回直接分配给它的对象的属性。如果您执行以下操作:
console.log(navigator.hasOwnProperty('permissions')); // false
如果您想查看导航器的属性,请执行以下操作:
for(let i in navigator){
console.log(i);
}
它将列出 navigator 对象的所有属性,因为 for ... in ... 循环包括对象的原型(prototype)。
关于javascript - 为什么我无法在 JavaScript 中获取导航器对象的属性计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37229784/