- Object.create()簡介
此方法用於繼承指定對象的屬性和方法然後去創建一個新的對象, 調用時需要傳入兩個參數[o: object, properties: object] -
使用
var obj = { id: 123, name: 'Tom', age: 19, sex: 9, on: { eat: () => alert(`it\'s time to eat`) } } var subObj = Object.create(obj || null);
查看結果如下:
- 查找對象的屬性時會從對象自身順着原型鏈一直往上找, 直到找到返回屬性值, 找不到返回undefined; 如果對象的屬性是不可枚舉的, 那麼雖然不能被for in遍歷到, 但是如果存在還是可以被找到的, eg:
首先創建一個對象, 使用Object.defineProperties()方法設置屬性, 其中id不可枚舉, name可枚舉
var obj = {} Object.defineProperties(obj, { id: { value: 123, enumerable: false }, name: { value: 'Tom', enumerable: true } })
遍歷對象, 以驗證其可枚舉的屬性
for (var key in obj) { console.log(`{value: key} : ${obj[key]}: ${key}`) }
查找屬性, 發現都是可以獲取到的