理解Function(一)
前言:以前一直对 function,对象,引用类型 这些概念很模糊,不是很理解他们究竟是什么关系,最近看书发现有些讲解,就记下来。
Function类型
每个函数都是Function类型的实例(p110),而Function是一种引用类型,且引用类型的值(保存在内存中的对象)就是一个引用类型的实例。
对象是某个特定引用类型的实例。新对象是使用new操作符后面跟一个构造函数。构造函数本身就是一个函数,只不过是为创建新对象而定义的,代码:
1 var person=new Function();//Object 、Array等 是原生构造函数(或称原生引用类型)
所以函数其实是对象。
所以函数名实际上是指向函数对象的指针。
Javascript数据是存在栈内存(stack)和堆内存(heap),堆内存存储javascript对象的具体内容,而栈内存存储对象的地址,下面的代码:
1 var ftn = function(){alert(‘hi’)}; 2 alert(ftn); // var ftn = function(){alert(‘hi’)}; 3 alert(ftn()); //hi
总结:funtion函数是Function引用类型的一个实例(注意大小写),function函数是一个对象。

浙公网安备 33010602011771号