当前位置:编程学习 > JAVA >>

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

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的专栏
补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,