<html> <head> <script> function f(starts){ var ms = 9; return function(){ return ms++; } } var k = f(5); alert(k());//5 alert(k());//6 alert(k());//7 </script> </head> </html>
在建立了一个函数对象k的时候,一样为这个函数对象k加入了一个参数ms。那么在再次调用这个函数k的时候,这个函数k内部依旧保留了这个参数ms,并且每次调用都是哪个参数ms。而不是从新建立ms。由于这个ms在建立这个函数对象k的时候就已经建立了,之后只要使用就行。这就是函数内带上参数的做用,也就是闭包的做用。html
闭包是一个函数加上和其做用域链的连接。所以,f(5)返回的是一个闭包函数对象。闭包