<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)返回的是一個閉包函數對象。閉包