4 个回答

Object.create()可以指定你要创建的对象的原型,不支持传参
new Obj() 可以传参,原型一般为Obj的prototype

其实最主要的区别可以概括成一点:new所作用的是一个函数,而Object.create所作用的是两个普通对象。

Object.create所作用的是两个普通对象,所以它不能包含可执行代码。它只是简单地将第一个参数设置为新对象的原型,并且把第二个对象自身的所有可枚举属性复制到新对象中。

所以,当你想以一个已有对象作为原型来创建另一个对象时,用Object.create。而如果你已经定义了一个构造函数,想用其创建对象,就用new。所以归根结底,两者的适用情况有少许差别,但本质是一样的,具体选择哪个要看你手里有什么。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题