JS—对象中的Object.create( )

32 阅读1分钟

Object.create( )

1.概述

Object.create()用于创建一个新对象,使用现有的对象来作为新创建对象的原型(proto)。

2.语法

Object.create(proto)

Object.create(proto,[propertiesObject])

1)参数

proto——新创建对象的原型对象。prpto参数需为null原始包装对象(即除基本类型包装对象以外的对象),否则会抛出一个TypeError异常。

propertiesObject——可选,也是一个对象。用于对新创建的对象进行初始化。

2)返回值

返回一个新对象,带着指定的原型对象及其属性。

3.案例使用

1、Object.create( )不传递propertiesObject

const person = {
    name: 'tom',
    age:18
  };
  
const me = Object.create(person);

console.log(me);  //{}

2.Object.create( )传递propertiesObject

//创建一个可写的,可枚举的,可配置的属性name和属性age
const me = Object.create(person,{
    name:{       
        value:"peter",
        writable:true,
        configurable:true,
        enumerable:true
    },
    age:{
        value:20,
        writable:true,
        configurable:true,
        enumerable:true
    }
});

console.log(me);  //{ name: 'peter', age: 20 }

与使用对象字面量或使用Object创建对象相比,Object.create( )创建对象的优点

const person = {
    name: "tom",
};

const me = Object.create(person);

const me2 = Object(person);

console.log(person);  //{ name: 'tom' }
console.log(me);  //{}
console.log(me2);  //{ name: 'tom' }

从示例可看出,使用字面量和使用Object创建的对象是一样的。使用Object.create()方法创建对象,对me操作时并不会影响原有数据。

注意:Object.create( )实现的是浅拷贝。

developer.mozilla.org/zh-CN/docs/…