|
|
1
260
由于只有一个继承级别,您的示例可能无法让您看到
此方法允许您轻松地实现 差异遗传 ,其中对象可以直接从其他对象继承。
在你的
|
|
|
2
54
使用它真的没有什么好处
"scalability" ,或“ more natural to JavaScript
然而,我还没有看到一个具体的例子表明这一点
这是因为
关于,传递到
|
|
|
3
42
Object.create在一些浏览器上还不是标准的,例如IE8、Opera v11.5、konq4.3都没有。您可以使用Douglas Crockford的Object.create版本,但这不包括CMS答案中使用的第二个“initialization Object”参数。 对于跨浏览器代码,同时获得对象初始化的一种方法是定制Crockford的object.create。这里有一个method:-
所以bob继承了sayHello方法,现在拥有自己的属性id=1和name='bob'。当然,这些属性既可写又可枚举。这也是一种比ECMA Object.create简单得多的初始化方法,特别是当您不关心可写、可枚举和可配置属性时。 对于没有init方法的初始化,可以使用以下Crockford modused:-
我觉得比Object.build要简单一些,因为userB不需要init方法。另外,userB不是一个具体的构造函数,而是一个普通的单例对象。所以用这个方法你可以构造和初始化普通的对象。 |
|
|
4
25
热释光;博士:
所有的优势都是基于这一点。
|
|
|
5
14
你可以让
|
|
|
6
10
Object.create的另一个可能用法是在 cheap and effective way .
笔记 1 ),因为它不复制对象成员属性。相反,它在源对象上创建另一个带有原型集的目标对象。此外,当dest对象上的属性被修改时,它们被“动态”创建,掩盖了原型(src)的属性,这是一种快速而有效的克隆不可变对象的方法。 这里需要注意的是,这适用于创建后不应修改的源对象(不可变)。如果源对象在创建后被修改,克隆的所有未屏蔽属性也将被修改。 在这里摆弄( http://jsfiddle.net/y5b5q/1/ )(需要具有Object.create功能的浏览器)。 |
|
|
7
7
在本文提供的代码示例中,这并不是什么大事,但在下一个示例中,它是:
副作用结果如下:
|
|
|
8
6
有时不能使用NEW创建对象,但仍然可以调用create方法。
|
|
|
9
4
优点是
In this jsperf example
,在浏览器中
也许浏览器还没有赶上
|
|
|
10
4
例子:
|
|
|
11
3
这将起作用:
这里的UserB类似于Object.create,但是根据我们的需要进行了调整。 如果需要,您也可以拨打:
|
|
|
12
3
因为它引起了太多的麻烦。例如,如果不小心,它很容易指向全局对象,这可能会产生非常糟糕的后果。他声称不使用 这 Object.create不再有意义了。
https://www.youtube.com/watch?v=PSGEjv3Tqo0
|
|
|
13
3
作为7ochem对上述答案的回应,对象绝对不应该将其原型设置为
而不是访问
而且,作为 Mozilla documentation of Object.setPrototypeOf
鉴于
现在,如果我们想用以下定义创建一个子类Y:
|
|
|
14
2
我喜欢封闭式的方法。
我仍然使用
我仍然使用
考虑一下这个简单的继承。
鼓励反馈。 |
|
|
15
2
|
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |