JavaScript对象系统深入剖析-2.函数对象

来源:互联网 发布:linux 添加永久路由 编辑:程序博客网 时间:2024/05/29 08:41

2.       函数对象(Function Object)

 

@吴穹Adam (新浪微博)

 

函数对象首先是一个对象,所以,它也有__proto__链接,也有Delegation。函数对象还有一个特殊之处就是它会有一个叫做prototype的属性(又是prototype?, 对,这就是我一直用__proto__链接来代表上文提到的prototype linkage,这样可以避免混淆)。

 

当用var ff = function(){}定义一个函数时,JS会生成一个函数对象,这个函数对象的__proto__指针指向Function.prototype, 同时还会有一个property属性,其值是一个对象,这个对象只有一个属性是构造函数,构造函数的值就是这个函数的定义function(){},而这个对象的__proto__指针则指向Object.Prototype,如下图:

\

 

了解了函数对象,再看看它如何发挥作用:当用new激活一个函数时,一个新对象会被创建出来,其内容是执行函数的返回结果,而这个对象的__proto__链接指向函数的prototype属性对象,如下面的例子所示:

\

抽象一下,就是这样:

\



摘自 adwu73的专栏

http://www.2cto.com/kf/201201/117898.html

0 0
原创粉丝点击