在javascript中,函数本身也是一个对象,像其它的对象一样。
像其它的对象一样,函数也可以像一个值一样,被赋给其它变量,数组元素,甚至是对象的属性。
作为一个对象,函数本身也一些内置属性。
length是函数的一个只读属性,它代表函数期望的参数个数,也就是函数定义时的参数个数。你可以通过arguments这个对象的callee这个属性来引用函数本身。
函数还有一个属性,prototype,像其它对象一样。
尽量少的定义全局变量,那我需要一个static类型怎么办?像下面这样做
f.counter = 0;
function f () {
return f.counter++;
}
apply()和call()方法。
函数和对象的组合灵活多变,像积木一样,需要的时候,拼装在一起,不用时又可以拆开。
f.call(o, 1, 2) 与下面的代码意义相同
o.g = f;
o.g(1, 2);
delete o.m;
而apply是将第二个参数做为一个数组的,f.apply(o,[1,2])
它们的第一个参数都可以函数中,使用this关键字来引用。