在JS中是没有块级作用域的只有函数作用域。
局部变量一般都会在函数结束后自动销毁释放出内存,而全局变量会直到进程结束才会被销毁。
因此要尽量少的使用全局变量,尽可能使用局部变量,这不仅会减少变量重名的几率,更会减少内存开销。
当我们需要一个作用域来关住变量时一般会用一个匿名函数来充当这个作用域。
最有效的方法,还是采用面向对象开发。
JS既然缺少作用域限制,那我们自己再给它人为加上一个作用域,并且保证每个作用域不重复,这个东西本身JS就有,那就是对象。
(function(){
var gender = '男';
})();
console.log(gender);//结果是:gender is not defined
// A同学负责的工作人员信息
var A = {} //定义一个空对象
A.name = 'tom';
A.showName = function() {
alert(this.name);
}
// B同学负责的老师信息
var B = {}
B.name = 'Jack';
B.showName = function() {
alert(this.name);
}
// 正常使用,不会冲突
console.log(A.name);//结果:tom
console.log(B.name);//结果:Jack
A.showName ();//结果:tom
B.showName ();//结果:Jack