您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

了解Object.create()和new SomeFunction()之间的区别

了解Object.create()和new SomeFunction()之间的区别

Object.create中使用的对象实际上构成了新对象的原型,而与newFunction()一样,声明的属性/函数不构成原型。

是的,Object.create构建一个对象,该对象直接从作为其第一个参数传递的对象继承。

使用构造函数,新创建的对象将从构造函数的原型继承,例如:

在上面的示例中,o直接继承自SomeConstructor.prototype

这里有一个区别,另一方面,Object.create您可以创建一个不继承任何对象的对象,Object.create(null);另一方面,如果您设置SomeConstructor.prototype = null;了新创建的对象将继承自的对象Object.prototype

您不能像使用功能语法那样使用Object.create语法创建闭包。给定JavaScript的词法(与块)类型范围,这是合乎逻辑的。

好了,您可以创建闭包,例如使用属性描述符参数:

请注意,我在谈论的是ECMAScript 5th Edition Object.create方法,而不是Crockford的shim。

其他 2022/1/1 18:14:49 有587人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶