24
|
Chris Noe PaweÅ Dyda · 技术社区 · 14 年前 |
![]() |
1
29
不,它存储在
您甚至可以通过存储
所有对象都有一个构建原型链的内部属性,此属性称为
违约
所有函数都有一个
它在后台创建的新对象实例,以及此对象
是的,
这个
下次
注意,这个实现几乎不符合
所有浏览器供应商都在实现它(已经在firefox 3.7 alphas、最新的wekit Nightly版本和chrome 5 beta上提供),所以我建议您在覆盖它之前至少检查一下是否存在本机实现。 |
![]() |
2
7
1)函数实际上是一种对象。带有标识符的函数对象
2)
这不太正确。分配对象
3)
最后,浏览器中的javascript是单线程的,因此不可能出现如您所描述的竞争条件。 |
![]() |
3
2
你在这里的主要误解是F具有全球范围。它在object.create的主体中声明,因此只在该方法块的范围内。 |
![]() |
4
2
该技术已经是一个对象构造函数,因为它返回了新的f(),但是不能为say new man(“john”,“smith”)设置任何属性值。但是,如果修改了object.create代码,则可以进行实例化。例如,下面的Sarah对象可以使用object.creator构造和实例化,并将继承getname方法。
Sarah对象将由自己的属性名称:'Sarah',特性:年龄:9,重量:49,原型继承的Sarah.getName()将生成'Sarah'。 以下方法依赖于以创建顺序使用“for(prop in o)”枚举的自身属性。虽然没有ECMA规范的保证,但这个例子(以及一些更复杂的例子)适用于所有测试过的主要浏览器(4),但使用了provided hasownpropy(),否则就不适用了。
官方的ecma object.create有一个可选的第二个参数propertiesObject,它可以实例化属性值,但它是一个对象,而不是通常的列表,并且看起来很难使用。例如,我相信:
相当于更简单的老方法:
和
|
![]() |
damiano celent · 向原型方法添加回调函数并设置此上下文 8 年前 |
![]() |
DLF85 · 通过伪经典实例化(JavaScript)掌握原型继承 9 年前 |
![]() |
arachide · 受不同影响的原型属性 9 年前 |
![]() |
Data · 批评我的原型继承模式[已关闭] 9 年前 |