浅谈javascript 函数内部属性
在函数内部有两个特殊的属性:arguments和this。arguments是一个类数组对象,包含传入的所有参数,
但是这个对象还有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。
请看经典的阶乘函数例子:
functionFactorial(num){
if(num<=1){
return1;
}else{
returnnum*Factorial(num-1);
}
}
functionFactorial(num){
if(num<=1){
return1;
}else{
returnnum*arguments.callee(num-1);
}
}
使用第一种方式是没有错的,但是耦合性太高,不太好,函数名改变之后,内部的函数名也要改变
第二种方式就是低耦合的做法,无论函数名怎么改变都不会影响函数执行。
this引用的是函数据以执行的环境对象,或者也可以说是this值
window.color="red";
varo={color:"blue"};
functionsayColor(){
alert(this.color);
}
sayColor();//red
o.sayColor=sayColor;
o.sayColor();//blue
caller属性,保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为Null
functionouter(){
innter();
}
functioninnter(){
//alert(innter.caller);//耦合性太高
alert(arguments.callee.caller);
}
outer();
以上就是javascript函数内部属性的全部内容了,希望小伙伴们能够喜欢
热门推荐
10 情侣祝福语古文简短独特
11 酒店伴娘祝福语简短
12 晚上甜蜜的祝福语简短
13 给新娘简短的祝福语
14 当爸爸的简短祝福语
15 洛宁新年祝福语大全简短
16 新年祝福语简短搞笑幽默
17 结婚祝福语大全简短霸气
18 新人结婚祝福语简短高端