JavaScript对象系统深入剖析-2.函数对象
2012-01-30 15:34
453 查看
2. 函数对象(Function Object) @吴穹Adam (新浪微博)
注意:阅读2之前,请先阅读1.对象:/article/1699084.html
函数对象首先是一个对象,所以,它也有__proto__链接,也有Delegation。函数对象还有一个特殊之处就是它会有一个叫做prototype的属性(又是prototype?, 对,这就是我一直用__proto__链接来代表上文提到的prototype linkage,这样可以避免混淆)。
当用var Class = function(){}定义一个函数时,JS会生成一个函数对象F,函数对象F的__proto__指针指向Function.prototype, 同时F还会有一个property属性,property属性的引用一个新创建的对象p,这个对象p只有一个属性是构造函数constructor(),构造函数constructor()的值就是函数对象F,而对象p的__proto__指针则指向Object.Prototype,如下图:
了解了函数对象,再看看它如何发挥作用:当用new激活一个函数时,一个新对象会被创建出来,其内容是执行函数的返回结果,而这个对象的__proto__链接指向函数的prototype属性所引用的对象
,如下面的例子所示:
抽象一下,就是这样:
如果看到这里,还觉得不太明白,最好再去看看 3.对象创建 /article/1699082.html补记:推荐大家去看一下这个博客,解释的会更详细,有更多例子: http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html
注意:阅读2之前,请先阅读1.对象:/article/1699084.html
函数对象首先是一个对象,所以,它也有__proto__链接,也有Delegation。函数对象还有一个特殊之处就是它会有一个叫做prototype的属性(又是prototype?, 对,这就是我一直用__proto__链接来代表上文提到的prototype linkage,这样可以避免混淆)。
当用var Class = function(){}定义一个函数时,JS会生成一个函数对象F,函数对象F的__proto__指针指向Function.prototype, 同时F还会有一个property属性,property属性的引用一个新创建的对象p,这个对象p只有一个属性是构造函数constructor(),构造函数constructor()的值就是函数对象F,而对象p的__proto__指针则指向Object.Prototype,如下图:
了解了函数对象,再看看它如何发挥作用:当用new激活一个函数时,一个新对象会被创建出来,其内容是执行函数的返回结果,而这个对象的__proto__链接指向函数的prototype属性所引用的对象
,如下面的例子所示:
抽象一下,就是这样:
如果看到这里,还觉得不太明白,最好再去看看 3.对象创建 /article/1699082.html补记:推荐大家去看一下这个博客,解释的会更详细,有更多例子: http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html
相关文章推荐
- JavaScript对象系统深入剖析-2.函数对象
- JavaScript对象系统深入剖析3-创建对象Object.Create
- JavaScript对象系统深入剖析-1.对象
- JavaScript对象系统深入剖析-内容列表
- JavaScript对象系统深入剖析-4.Scope和Closure(闭包)
- JavaScript对象系统深入剖析-4.Scope和Closure(闭包
- JavaScript对象系统深入剖析-1.对象
- JavaScript对象系统深入剖析3-创建对象Object.Create
- JavaScript对象系统深入剖析3-创建对象Object.Create
- JavaScript对象系统深入剖析-1.对象
- QT源码解析(三)深入剖析QT元对象系统和信号槽机制(续)
- JavaScript学习09 函数本质及Function对象深入探索
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入剖析linux系统的printf函数
- QT源码解析(二)深入剖析QT元对象系统和信号槽机制
- QT源码解析(三)深入剖析QT元对象系统和信号槽机制(续)
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 实用代码-JavaScript实用小函数一枚(深入对象取值)
- 深入理解javascript原型和闭包(2)——函数和对象的关系