这个东西比较特别,就记下来了。
A:
B:
我们分别执行上面两段程序,发现 A 会报错:n is not defined 。
解释如下:
函数内部声明变量的时候,使用var,就是一个局部的、私有的变量,函数外不能访问。
如果不使用var,那实质上就是在函数内部访问了函数外的(全局的)变量 n 了。
引申:
根据 A 的例子,我们可以通过函数来创建一个封闭的空间,从而达到不污染全局变量的目的。
Example :
A:
function fn() {
var n = 100;
}
fn();
alert(n);
B:
function fn() {
n = 100;
}
fn();
alert(n);
我们分别执行上面两段程序,发现 A 会报错:n is not defined 。
解释如下:
函数内部声明变量的时候,使用var,就是一个局部的、私有的变量,函数外不能访问。
如果不使用var,那实质上就是在函数内部访问了函数外的(全局的)变量 n 了。
引申:
根据 A 的例子,我们可以通过函数来创建一个封闭的空间,从而达到不污染全局变量的目的。
Example :
(function(){
// 这里面的变量和方法不会污染全局的变量和方法
var _a = 1,
-b = 2;
//...
})();