var foo = function(){ var a=1 console.log(a) a++ } console.log('没有闭包') foo() foo() foo() foo() var bar = (function(){ var a=1 var add=function(){ a++ } var log=function(){ console.log(a) } return {add:add,log:log} })() console.log('有闭包') bar.log() bar.add() bar.log() bar.add() bar.log() bar.add() bar.log()