📅  最后修改于: 2023-12-03 14:42:30.118000             🧑  作者: Mango
在JavaScript中,我们可以使用Object.create()方法来创建新的对象。该方法创建新对象时可以继承已有对象的属性和方法,也可以通过参数设置新对象的属性和方法。
const myObj = Object.create(null);
上述代码创建了一个简单的新对象,该对象没有继承任何属性或方法。我们可以像创建对象字面量一样,使用点号或方括号来设置和访问新对象的属性:
myObj.name = 'John';
myObj['age'] = 30;
console.log(myObj.name); // 输出 'John'
console.log(myObj['age']); // 输出 30
const parentObj = {
name: 'Tom',
age: 25,
sayHi() {
console.log(`Hi, my name is ${this.name}.`);
}
};
const childObj = Object.create(parentObj);
上述代码中,我们使用Object.create()方法创建了一个新对象childObj,该对象继承了parentObj的所有属性和方法。我们可以通过调用childObj的属性和方法来验证其继承性:
console.log(childObj.name); // 输出 'Tom'
childObj.sayHi(); // 输出 'Hi, my name is Tom.'
const newObj = Object.create(null, {
name: {
value: 'Amy',
writable: true,
configurable: true
},
age: {
value: 28,
writable: false,
configurable: false
},
sayHi: {
value: function() {
console.log(`Hi, my name is ${this.name}.`);
},
writable: true,
configurable: true
}
});
上述代码中,我们使用Object.create()方法创建了一个新对象newObj,并通过第二个参数设置了新对象的属性和方法。每个属性和方法都是一个对象字面量,包含value、writable和configurable属性。
我们可以验证新对象的属性和方法,与前面的示例代码一样:
console.log(newObj.name); // 输出 'Amy'
newObj.sayHi(); // 输出 'Hi, my name is Amy.'