js对象的属性遍历不出来?

图片描述

为什么我用下面这段代码遍历不出上图显示的那些属性

var obj = document.getElementById("div1");
    for (var elem in obj) {
        if (obj.hasOwnProperty(elem)) {
            console.log(elem);
        }
    }
阅读 4.6k
5 个回答

obj.hasOwnProperty(elem) 限制只能遍历对象自身属性,不能遍历原型上的属性。去掉这一限制条件即可。

去掉if (obj.hasOwnProperty(elem))

hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。
不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。

无法判断原型链中是否具有该属性

for in 不能遍历出不可枚举属性的

superC.hasOwnProperty();             //自有属性为真
superC.propertyIsEnumerable(superC); //可枚举属性为真
Object.keys(superC);                 //所有可枚举自有属性
Object.getOwnPropertyNames(superC);  //所有自有属性
for x in superC                      //自有及其其原型链上继承到的可枚举属性

Nodejs中的一些小trick - QueenKing - SegmentFault https://segmentfault.com/a/11...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏