函数的内部属性

函数内部可以用arguments.callee来替换自己的名字,这样更换函数名字,里面的就不用更换了,比较便捷。示例如下:
function test(num){
if(num<=1){
return 1;
}else{
return arguments.callee(num-1)*num;
}
}

    alert(test(5));`

this的用法:
this用在全局可以直接调用全局变量;放在局部可以用来调用局部变量。示例:

全局时:
    window.color = 'orange'; window 表示最大的对象    
        alert(color);
        alert(this.color);  this此时代表  window 
局部时:  
        var color = 'red'  这是全局的    
        var test = {      test {} 是 局部作用域      
            color:'blue',
            useColor:function(){
                alert(this.color);  这里的this 只能 在局部范围找   
            }
        };

        test.useColor();  blue 
        alert(this.color); //这个this 代表全局    red 

全局变量不能直接使用局部变量,会报错未定义,这是可以借用函数的call方法。示例:

var color = 'yellow';
var jinqiao = {
            color: 'red'
        }

        function useComputer(){
            alert(this.color);
        }

    /*   useComputer();

         useComputer.call(jinqiao);*/   red 
         useComputer.call(this);  //作用域在 window   yellow
         useComputer.call(jinqiao); //作用域在局部 red 
         useComputer.call(window); //作用在全局yellow 
         ###局部可以调用全局变量,但是全局不能直接调用局部变量

猜你喜欢

转载自blog.csdn.net/weixin_42575020/article/details/81154833