javascript中的Function与function
来源:互联网 发布:米聊营销软件 编辑:程序博客网 时间:2024/04/20 13:49
由于我们平时都是习惯用function funcname(){}这种形式来声明function,但是他是怎么来的那,他既然是Object那和{}这样的Object又有哪些不同那。
先引用javascript语言精粹中的一句话:对象字面量产生的对象链接到Object.prototype,函数对象链接到Function.prototype
function Fucntion(){}
function是通过Function这个函数(typeof Function结果是function)制造出来的,在制造的时候js内部会给这个function一个prototype的属性,({constract:function})和上下文(就是函数的作用域,闭包的实现就是通过内部函数的作用域可以访问外部函数作用域,返回对外部函数作用域的访问权得以实现,有些扯远了-_-!!!)。function的prototype就是一个{}这样的Object。
Function.prototype
但是这个制造出来的function毕竟还是需要有function的功能,就好像function自己的prototype也会定义一些杂七杂八的属性或方法给自己的实例来使用。因此制造者(Function)本身的prototype(奇葩的是各种浏览器把Function.prototype描述成一个function,而且ie和chrome下面这个function的名字还不一样,说是function,但是不能new的)就包含一些function自身所使用的属性和方法(caller,call,apply...)
new function
function可以通过new得到function的实例对象,这个是{}不能做到的。,实例对象就引用Function的prototype(因此每个实例对象都会有constractor),而Function的prototype又引用Object的prototype,实现原型链。
最后再回到那句引用的话,我觉得函数对象链接到Function.prototype,对象字面量产生的对象链接到Object.prototype这样来说更符合顺序。Function把function制造出来,function的各种属性方法自然引用Function的prototype。function把实例制造出来,实例对象的各种属性方法自然引用function的prototype,然后就没有然后了:P。
- javascript中的Function与function
- JavaScript中的function与感叹号
- javascript 之 function 与 Function
- 理解javascript中的function与new Function的区别
- javascript中的数据类型、Object与Function
- javascript中的数据类型、Object与Function
- javascript中的数据类型、Object与Function
- 浅谈Javascript中的Function与Object
- javascript中的Function对象
- JavaScript中的function使用方法
- javascript中的new function
- JavaScript中的function
- javascript中的Function
- JavaScript中的Function函数
- javascript中的function
- JavaScript中的Function
- javascript中的函数Function
- javascript中的函数Function
- 移动应用的时空连续性
- 1036. Boys vs Girls_排序
- 为什么要设置 Mysql 的 ft_min_word_len=1 ?
- connect 、bind 、accept 函数的参数问题
- java自定义注解
- javascript中的Function与function
- Hadoop分布式框架简介
- hdu_1051-Wooden Sticks
- 把表中数据导成insert语句
- 类目、扩展、协议
- Unity3D Shader官方教程翻译(十)----Shader语法:Pass的Alpha测试
- 标准C++中的string类的用法总结
- Spring MVC上的应用
- 串口相关测试命令(可供参考)