JS遍历属性

作者: nummycode | 来源:发表于2016-04-08 10:26 被阅读106次

    可枚举属性

    对象属性可枚举,表示该属性的值不可修改,可认为该属性是常量。
    如何定义不可枚举的属性?

    var obj = {name: 'jack', age:23}
    Object.defineProperty(obj, 'id', {value : '123', enumerable : false });
    

    获取对象所有可枚举属性

    使用Object.keys(obj)可以获取对象obj自身所包含的所有可枚举属性。
    例如:

      var arr = ["a", "b", "c"];
        console.log(Object.keys(arr)); // console: ["0", "1", "2"]
    
    
        var obj = { 0 : "a", 1 : "b", 2 : "c"};
        console.log(Object.keys(obj)); // console: ["0", "1", "2"]
    
    
        var an_obj = { 100: "a", 2: "b", 7: "c"};
        console.log(Object.keys(an_obj)); // console: ["2", "7", "100"]
    
    
        var my_obj = Object.create({}, { getFoo : { value : function () { return this.foo } } });
        my_obj.foo = 1;
    
        console.log(Object.keys(my_obj)); // console: ["foo"]
    

    获取对象所有的实例属性

    Object.getOwnPropertyNames(obj) ;//获得对象上所有的“实例属性”
    

    判断对象是否拥有实例属性

    obj.hasOwnProperty(‘id’); 
    //只要该对象obj拥有属性id, 无论id是否可枚举,都返回true
    for(var i  in obj){ } 
    // 表示访问对象所有可枚举的属性,包括可枚举的实例属性和可枚举的原型对象的属性
    “name”  in obj   
    // 通过对象能够访问给定属性名时返回true, 无论该属性存在于实例中还是原型对象中
    

    相关文章

      网友评论

        本文标题:JS遍历属性

        本文链接:https://www.haomeiwen.com/subject/xcjvlttx.html