new Object和Object.create的区别

一、new Object()和{ }

  1. { }等同于new object(), 原形object.prototype
let obj1 = {
    a: 10,
    b: 20,
    sum() {
        return this.a + this.b
    }
}//原形object.prototype

let obj2 = new Object({
    a: 10,
    b: 20,
    sum() {
        return this.a + this.b
    }
})//原形object.prototype

二、Object.create()创建

1 object.create(null) 没有原形

  1. object.create({
    ...
    }) 可以指定原形
  2. Object.create是创建一个空对象,把对象挂到创建的原型当中。
    例如
const obj5 = object.create({
a: 10,
b: 20,
sum() {
    return this.a + this.b
}
})
创建的是空对象

三、Object.create()如果指向对象

const obj6 = object.create(obj1)

obj6

这种情况下创建的空对象,obj6的原型指向的obj1这个对象。

你可能感兴趣的:(new Object和Object.create的区别)