- 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}`) }
查找属性, 发现都是可以获取到的