當咱們談到閉包的時候,咱們到底在談論些什麼?

閉包實例

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

相關文章
相關標籤/搜索