js全局訪問局部變量


1、

  在函數內使用this.name(變量名)的方式賦值,當函數作為普通函數調用時,在函數外部可以直接訪問到,這是因為這里的this指向window:

    function fn(){
        var r = 2 ;
        this.ss = 0;
        this.sum=function(num1,num2){
          return (num1+num2)*r;
        };
    }
    fn();
    //var b = new fn();
    console.log(ss);                //0
    console.log(window.sum(1,2));    //6
    console.log(sum(1,2));            //6

   當函數作為方法函數調用時,情況又有所不同,這時候this指向發生變化,指向自身:

 

    function fn(){
        var r = 2 ;
        this.ss = 0;
        this.sum=function(num1,num2){
          return (num1+num2)*r;
        };
    }
    
    var b = new fn();
/*    
    console.log(ss);                //error 報錯
    console.log(window.sum(1,2));    //error 報錯
    console.log(sum(1,2));            //error 報錯
*/    
    //可以通過實例訪問
    console.log(b.ss);                //0
    console.log(b.sum(1,2));    //6

 

2、

    var a ;
    function fn2(){
        var b = 0;
        return b ;
    };
    a = fn2();
    console.log(a); //0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM