栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用“ Object.create”而不是“ new”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用“ Object.create”而不是“ new”

仅具有一个继承级别,您的示例可能无法让您看到的真正好处

Object.create

通过此方法,您可以轻松实现 差异继承 ,其中对象可以直接从其他对象继承。

在您的

userB
示例中,我认为您的
init
方法不应该是公共的,甚至不存在,如果您在现有对象实例上再次调用此方法,则
id
and
name
属性将发生变化。

Object.create
使您可以使用第二个参数来初始化对象属性,例如:

var userB = {  sayHello: function() {    console.log('Hello '+ this.name);  }};var bob = Object.create(userB, {  'id' : {    value: MY_GLOBAL.nextId(),    enumerable:true // writable:false, configurable(deletable):false by default  },  'name': {    value: 'Bob',    enumerable: true  }});

如您所见,可以

Object.create
使用与
Object.defineProperties
Object.defineProperty
方法相似的语法,使用对象常量在属性的第二个参数上初始化属性。

它可以让你设置属性的属性(

enumerable
writable
,或
configurable
),它可以是非常有用的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402545.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号