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

使用“ Object.create”而不是“ new”,第1张

使用“ 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
),它可以是非常有用的。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5011496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存