1、用Object.create()方法创建新对象,并使用现有对象提供新对象的proto。
2、提供两个参数,第一个是新创建的原型对象,第二个是为新创建的对象添加属性的对象。
// father 对象
let father = {
name: 'father',
friend: ['abby', 'bob']
}
// 生成新实例对象 child1
let child1 = Object.create(father)
// 更改值类型属性
child1.name = '修改了name'
console.log(child1.name) //修改了name
// 更改引用类型值
child1.friend.push('chely')
console.log(child1.friend) //[ 'abby', 'bob', 'chely' ]
// 生成新实例对象 child2
let child2 = Object.create(father)
console.log(child2.name) //father
console.log(child2.friend) //[ 'abby', 'bob', 'chely' ]
Object.create()创建方法实例
const person = {
isHuman: false,
printIntroduction: function() {
console.log(`My name is ${this.name}. Am I human? ${this.isHuman}`);
}
};
const me = Object.create(person);
me.name = 'Matthew'; // "name" is a property set on "me", but not on "person"
me.isHuman = true; // inherited properties can be overwritten
me.printIntroduction();
// expected output: "My name is Matthew. Am I human? true"
运行结果
“My name is Matthew. Am I human? true”