黑马程序员技术交流社区

标题: 函数中的变量访问 [打印本页]

作者: sangwentao    时间: 2016-6-13 18:30
标题: 函数中的变量访问
js为变量赋值时(将b赋给a),首先在其作用域中搜索,看b是在当前语句之前还是之后定义。若是之前定义,则进行正常赋值。若是之后定义,则a为undefined(即使全局中有名叫b的变量)。若没有b的定义则沿作用域链上溯。

var b=1;
function(){
    var a=b;    //a=1;
}

var b=1;
function(){
    var a=b;    //undefined;
    b=1;
}

function(){
    var a=b;  //错误
}

1.检查当前变量对象有无该变量。
2.若有,检查在左值之前还是之后,之前正常赋值,之后undefined。若无,沿作用域链上溯寻找上游变量对象。若最终未找到则error。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2