函数是一种特殊对象;
对象:属性的集合(名-值对);
函数用来初始化(用new运算符)一个新建的对象称为构造函数。
对象中当属性是一个函数时,称其为方法。
函数体内,局部变量的优先级高于同名的全局变量。
代码例子:
var scope = "global"; //声明一个全局变量
function checkscope(){
var scope = "local"; //生命一个同名局部变量
return scope; // 返回的是局部变量的值,而不是全局变量的值
}
checkscope() //local
var scope = "local"; //生命一个同名局部变量
return scope; // 返回的是局部变量的值,而不是全局变量的值
}
checkscope() //local
注意全局变量前可以不写var,但局部变量前必须写。
声明提前(hositing)代码例子:
var scope = "global";
function f(){
//应该是 var scope;var提前到这
console.log(scope); //输出undefined, not "global"
var scope = "local"; //(scope = "local") var提前了 变量在这赋值,但变量本身在函数体内都是有定义的。
console.log(scope); //输出"local"
}
作用域链是一个对象列表或链表。这组对象定义了这段代码作用域中的变量。(还不太懂,待解)