1.实现公有变量
function test(){
var num = 100;
function a(){
num++;
console.log(num)
}
function b(){
num--;
console.log(num)
}
return [a,b]
}
var myArr = test();
myArr[0]();//101
myArr[1]();//100
2.可以做缓存(存储结构)
function eater(){
var food = '';
var obj = {
eat:function(){
console.log('i am eation' + food)
},
push:function(myFood){
foo = myFood;
}
}
return obj;
}
var eater1 = eater();
eater1.push('banana');
eater1.eat();
3.可以实现封装,属性私有化
function Person(name,age,monthlySalary ){
var money = 20000;
this.name = name;
this.age = age;
this.monthlySalary = monthlySalary;
this.work = function(){
this.monthlySalary = money;
}
this.striveWork = function(target){
money = target;
}
}
var person = new Person('zhangsan',18,10000)
4.模块化开发,防止污染全局变量
var init = (function(){
var name = 'abc';
function callName(){
console.log(name)
}
return function(){
callName()
}
})()