当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Object.create()用法及代码示例


在本教程中,我们将借助示例了解 JavaScript Object.create() 方法。

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

示例

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

// create object from Student prototype
let std1 = Object.create(Student);

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

// Output: Name: Sheeran

create() 语法

用法:

Object.create(proto, propertiesObject)

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

create()参数

create() 方法包含:

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

create() 返回值

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

注意:如果原型不是null或一个Object,TypeError被抛出。

示例:使用对象。create()

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

// create object from Animal prototype
let snake = Object.create(Animal);
snake.makeSound(); // Unspecified

// properties can be created  and overridden
snake.sound = "Hiss";
snake.makeSound(); // Hiss

// can also directly initialize object properties with second argument
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.create()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。