普通对象的遍历

76 阅读1分钟

普通对象的遍历:

            var obj = {
                name: 'luoxijie',
                age: 21,
                school: '西南石油大学',
            };
            // address是不可枚举属性
            Object.defineProperty(obj, 'address', {
                value: '成都',
                // 默认是不可枚举,即enumerable为false
                enumerable: true,
                // 默认是不会被delete,即configurable为false
                configurable: true,
                // 默认不可修改,即writable为false
                writable: true,
            });
            obj.address = '四川成都';
            // 只可以遍历可枚举属性
            for (const key in obj) {
                if (Object.hasOwnProperty.call(obj, key)) {
                    const element = obj[key];
                    console.log(key + ': ' + element);
                }
            }
            console.log(Object.keys(obj).length); // 4 address去掉enumerable属性后为3
            delete obj.address; // 删除对象的某一个属性(属性要可以被删除)
            delete obj.school; // 直接创建的对象的属性可以被删除
            console.log(obj.address); //undefined 已经被删除了