JS基础——变量、闭包

  1.变量的作用域

  变量可以是全局的,也可以是局部的,在谈论全局变量和局部变量之间的区别时,我们其实是在讨论变量的作用域(scope)。

  I.全局变量:可以在脚本的任何位置被引用。作用域是整个脚本。

  II.局部变量:只存在于对它作出声明的那个函数的内部,在那个函数外部是无法引用它的。作用域仅限于某个特定的函数。

  III.局部变量和全局变量

  如果全局变量与局部变量名相同,局部变量将覆盖全局变量。

  II.局部函数

  外部函数可以调用其内部的函数。

  只有当外部函数被调用时,内部局部函数才会被执行

  2.闭包

  有权访问另一个函数作用域中的变量的函数,创建闭包的常见方式,就是在一个函数内部创建另一个函数。

  栗子:

Function createComparisonFunction(propertyName){

Return function(object1,object2){

Var value1=object1[propertyName];

Var value2=object2[propertyName];

If(value1<value2){

Return -1;

}else if(value1>value2){

Return 1;

}else{

Return 0;

}

}

}

以上加粗的代码中访问了外部函数的变量propertyName.

 

posted @ 2016-10-13 15:34  lsnan  阅读(642)  评论(0编辑  收藏  举报