nan*_*din 8 javascript prototype
function f()
{
}
alert (f.prototype); // returns something like [object Object]
Run Code Online (Sandbox Code Playgroud)
我的理解是默认情况下自定义函数的原型应该为null或未定义,有人可以解释一下吗?谢谢!
prototype函数对象的属性是自动创建的,只是一个带有{DontEnum}和{DontDelete}属性属性的空对象,您可以看到如何在规范中创建函数对象:
注意步骤9,10和11:
9)创建一个由表达式构造的新对象new Object().
10)将Result(9)的构造函数属性设置为F.此属性具有属性{ DontEnum }.
11)将F的prototype属性设置为Result(9).此属性具有15.3.5.2中指定的属性.
您可以通过以下方式看到这是真的:
function f(){
//...
}
f.hasOwnProperty('prototype'); // true, property exist on f
f.propertyIsEnumerable('prototype'); // false, because the { DontEnum } attribute
delete f.prototype; // false, because the { DontDelete } attribute
Run Code Online (Sandbox Code Playgroud)
这是描述对象继承的链接:
http://javascript.crockford.com/prototypal.html
http://www.mollypages.org/misc/js.mp

(来源:mollypages.org)
| 归档时间: |
|
| 查看次数: |
3906 次 |
| 最近记录: |