您的位置:首页 > Web前端 > JavaScript

JavaScript:Scope &Closure 变量作用域和闭包

2015-04-25 01:54 465 查看
Scope

var foo = function(){
    var a = 3,b=5;
    var bar = function(){
        var b = 7,c=11;
        //此时 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
}


1.
var a = 1;
function one(){
  alert(a);
}
one();   // 输出 1
2.
var a = 1;
function two(a){
  alert(a);
}
two(2);  //输出 2 
function three(){
  var a = 3;
  alert(a);
}
three()  //输出3
3.
var a = 1;
function four(){
  if(true)
    var a = 4;
 alert(a);
}
four();   //4
4.
var a = 1;
function five(){
  this.a = 5
  alert(a);
}
five();   //5
5.
var a = 1;
var six = (function(){
  var foo = 6;
  return function(){
    alert(foo)
  }
})()
six()   //6
6.
var a = 1;
function seven(){
  this.a = 7;
}

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

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

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

8.
var e = 5;
alert(e);
try{
    throw 6;
}catch(e){
    alert(e);
}
alert(e);  //分别输出5 6 5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: