跳到主要内容

Javascript 对象 create() 方法

Object.create()方法使用给定对象的原型创建一个新对象。

示例

let Student = {
name: "Lisa",
age: 24,
marks: 78.9,
display() {
console.log("Name:", this.name);
},
};

// 从Student原型创建对象
let std1 = Object.create(Student);

std1.name = "Sheeran";
std1.display();

// 输出: Name: Sheeran

create()语法

create()方法的语法是:

Object.create(proto, propertiesObject);

create()方法作为静态方法,使用Object类名调用。

create()参数

create()方法接受:

  • proto - 应该成为新创建对象的原型的对象。
  • propertiesObject(可选) - 一个对象,其可枚举的自有属性指定要添加到新创建对象的属性描述符。这些属性对应于Object.defineProperties()的第二个参数。

create()返回值

  • 返回具有指定原型对象和属性的新对象。

注意: 如果proto不是nullObject,会抛出TypeError

示例:使用Object.create()

let Animal = {
isHuman: false,
sound: "Unspecified",
makeSound() {
console.log(this.sound);
},
};

// 从Animal原型创建对象
let snake = Object.create(Animal);
snake.makeSound(); // Unspecified

// 可以创建和覆盖属性
snake.sound = "Hiss";
snake.makeSound(); // Hiss

// 也可以使用第二个参数直接初始化对象属性
let properties = {
isHuman: {
value: true,
},
name: {
value: "Jack",
enumerable: true,
writable: true,
},
introduce: {
value: function () {
console.log(`Hey! I am ${this.name}.`);
},
},
};

human = Object.create(Animal, properties);
human.introduce(); // Hey! I am Jack.

输出

Unspecified
Hiss
Hey! I am Jack.

推荐阅读: Javascript对象Object.isPrototypeOf()