函数内部的属性
在函数内部,有两个特殊的对象:arguments和this。其中arguments是一个类数组对象,包含着传入函数中的所有参数。虽然arguments的主要用途是保存函数参数,但这个对象还有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。
函数内部的另外一个特殊对象是this,其行为与java和C#的this大致相似。换句话说,this引用的是函数据以执行的环境对象。
1 window.color = "red"; 2 var o = { color: "blue" }; 3 4 function sayColor() { 5 alert(this.color); 6 } 7 8 sayColor(); //"red" 9 10 o.sayColor = sayColor; 11 o.sayColor(); //"blue"
这个例子很简单,在复杂的情况下参考这个小例子就很明了了。
js5还规范了函数对象的另一个对象的属性:caller。caller属性中保存这调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,他的值为null。