js手写代码小记:从Object.create和Object.create谈起
2023-12-17 05:15:27
JavaScript中的对象创建
在JavaScript中,对象是用来存储和组织数据的。我们可以使用多种方法来创建对象,最常见的方法之一就是使用Object.create()方法。
Object.create()方法接受两个参数:
- 第一个参数是新对象的原型对象。
- 第二个参数是新对象的属性和方法。
以下是一个使用Object.create()方法创建对象的示例:
const person = {
name: "John Doe",
age: 30,
};
const employee = Object.create(person, {
salary: {
value: 100000,
},
});
在这个示例中,我们首先创建了一个名为person的对象,它包含了两个属性:name和age。然后,我们使用Object.create()方法创建了一个名为employee的新对象,它继承了person对象的属性和方法。我们还向employee对象添加了一个名为salary的新属性。
JavaScript中的原型继承
在JavaScript中,对象可以通过原型继承的方式来继承其他对象。原型继承是一种特殊的继承方式,它允许一个对象继承另一个对象的属性和方法。
每个对象都有一个原型对象,原型对象是该对象的父对象。我们可以使用Object.getPrototypeOf()方法来获取一个对象的原型对象。
以下是一个使用Object.getPrototypeOf()方法获取对象原型对象的示例:
const person = {
name: "John Doe",
age: 30,
};
const employee = Object.create(person, {
salary: {
value: 100000,
},
});
console.log(Object.getPrototypeOf(employee)); // { name: "John Doe", age: 30 }
在这个示例中,我们首先创建了一个名为person的对象,它包含了两个属性:name和age。然后,我们使用Object.create()方法创建了一个名为employee的新对象,它继承了person对象的属性和方法。我们还向employee对象添加了一个名为salary的新属性。
使用Object.getPrototypeOf()方法,我们可以获取employee对象的原型对象,它是person对象。这表明employee对象继承了person对象的属性和方法。
Object.create()和Object.create
Object.create()方法和Object.create方法都是用来创建对象的,但它们之间有一些区别。
Object.create()方法创建一个新对象,它继承了另一个对象的属性和方法。Object.create方法创建一个新对象,它没有原型对象。
以下是一个使用Object.create方法创建对象的示例:
const person = {
name: "John Doe",
age: 30,
};
const employee = Object.assign({}, person, {
salary: 100000,
});
console.log(Object.getPrototypeOf(employee)); // null
在这个示例中,我们首先创建了一个名为person的对象,它包含了两个属性:name和age。然后,我们使用Object.assign()方法创建了一个名为employee的新对象,它继承了person对象的属性和方法。我们还向employee对象添加了一个名为salary的新属性。
使用Object.getPrototypeOf()方法,我们可以获取employee对象的原型对象,它是null。这表明employee对象没有原型对象。
总结
在JavaScript中,我们可以使用Object.create()方法和Object.create方法来创建对象。Object.create()方法创建一个新对象,它继承了另一个对象的属性和方法。Object.create方法创建一个新对象,它没有原型对象。
原型继承是JavaScript中一种特殊的继承方式,它允许一个对象继承另一个对象的属性和方法。每个对象都有一个原型对象,原型对象是该对象的父对象。我们可以使用Object.getPrototypeOf()方法来获取一个对象的原型对象。