闭包 累加器
function add(){ var count=0; function demo(){ count++; console.log(count); } return demo; } var count =add(); count(); count();可以做缓存
function test(){ var num=100; function a(){ num++; console.log(num); } function b(){ num--; console.log(num); } return[a,b]; } var myArr=text(); myArr[0](); //101 myArr[1](); //100 function eater(){ var food=""; var obj={ eat:funtion(){ console.log("i am eating "+food); food=""; }, push:function(myFood){ food=myFood; } return obj; } var eater1=eater(); var eater2=eater(); eater1.push(‘banana'); eater1.eat(); function test(){ var arr=[]; for(var i=0;i<10;i++){ arr[i]=function(){ duncument.write(i); } } return arr; } var myArr=test(); for (var j=0;j<10;j++) { myArr[j](); } // 10 10 10 10 10 10 10 10 10 10 //函数定义时没有意义,执行的时候再去看变量私有化
function Deng(name,wife){ var prepareWife="xiaowang" //私有化变量 this.name=name; this.wife=wife; this.divorce=function(){ this.wife=prepareWife; } this.changePrepareWife=function(target){ prepareWife=target; } } var deng=new Deng("deng","xiaoliu") deng.prepareWife // underfined