- for…in方法
- Object.keys
- Object.getOwnPropertyNames
關于對象的可枚舉性(enumerable)
var obj = {a: 1,b: 2
}
Object.defineProperty(obj, 'c', {value: 3,enumerable: false
})
復制代碼
enumerable設置為false,表示不可枚舉,for…in循環、Object.keys()方法和JSON.stringify方法均訪問不到該屬性。
for…in
能訪問到自身以及原型里的可枚舉屬性
for (var key in obj) {console.log(key)
}
復制代碼
如果過濾原型上的屬性時,需要使用hasOwnProperty
for(var key in obj) {if(obj.hasOwnProperty(key) {console.log(key)}
}
復制代碼
Object.keys()
返回一個數組,包含對象所有的可枚舉屬性
Object.getOwnPropertyNames()
返回一個數組,包含對象所有屬性
Object.getOwnPropertySymbols()
返回一個數組,包含對象自身的所有Symbol屬性