为什么我用下面这段代码遍历不出上图显示的那些属性
var obj = document.getElementById("div1");
for (var elem in obj) {
if (obj.hasOwnProperty(elem)) {
console.log(elem);
}
}
为什么我用下面这段代码遍历不出上图显示的那些属性
var obj = document.getElementById("div1");
for (var elem in obj) {
if (obj.hasOwnProperty(elem)) {
console.log(elem);
}
}
hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。
不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
无法判断原型链中是否具有该属性
superC.hasOwnProperty(); //自有属性为真
superC.propertyIsEnumerable(superC); //可枚举属性为真
Object.keys(superC); //所有可枚举自有属性
Object.getOwnPropertyNames(superC); //所有自有属性
for x in superC //自有及其其原型链上继承到的可枚举属性
Nodejs中的一些小trick - QueenKing - SegmentFault https://segmentfault.com/a/11...
27 回答13.1k 阅读
8 回答3.5k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
5 回答5.3k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
3 回答1.7k 阅读
4 回答2.3k 阅读✓ 已解决
obj.hasOwnProperty(elem) 限制只能遍历对象自身属性,不能遍历原型上的属性。去掉这一限制条件即可。