天天看點

JavaScript:Scope &Closure 變量作用域和閉包

Scope

var foo = function(){
    var a = ,b=;
    var bar = function(){
        var b = ,c=;
        //此時 a=3,b=7,c=11
        a += b+c;
        //此時a=21,b=5,c=11
    }
    //此時a=3,b=5,c未定義
    bar();
    //此時 a=21,b=5
}
           
var a = ;
function one(){
  alert(a);
}
one();   // 輸出 1

var a = ;
function two(a){
  alert(a);
}
two();  //輸出 2 
function three(){
  var a = ;
  alert(a);
}
three()  //輸出3

var a = ;
function four(){
  if(true)
    var a = ;
 alert(a);
}
four();   //4

var a = ;
function five(){
  this.a = 
  alert(a);
}
five();   //5

var a = ;
var six = (function(){
  var foo = ;
  return function(){
    alert(foo)
  }
})()
six()   //6

var a = ;
function seven(){
  this.a = ;
}

seven.prototype.a = -;
seven.prototype.b = ;

alert(new seven().a);  //7
alert(new seven().b);  //8


var x = ;
(function (){
  alert(x);   //undefined
  var x = ;
  alert(x);  //10
})()


var e = ;
alert(e);
try{
    throw ;
}catch(e){
    alert(e);
}
alert(e);  //分别輸出5 6 5


           

繼續閱讀