什么是閉包
“官方”的解釋:所謂“閉包”,指的是一個擁有許多變量和綁定了這些變量的環境的表達式(通常是一個函 數),因而這些變量也是該表達式的一部分。 在 Scala、Scheme、Common Lisp、Smalltalk、Groovy、 JavaScript、Ruby、 Python、Go、Lua、objective c、swift 以及Java(Java8及以上)等語言中都能找到對閉包不同 程度的支持。 通俗的講就是函數a的內部函數b,被函數a外部的一個變量引用的時候,就創建了一個閉包。
閉包的特性:
①.封閉性:外界無法訪問閉包內部的數據,如果在閉包內聲明變量,外界是無法訪問的,除非閉包主動向外 界提供訪問接口;
②.持久性:一般的函數,調用完畢之后,系統自動注銷函數,而對於閉包來說,在外部函數被調 用之后,閉包結構依然保存在;
對頁面的影響:
使用閉包會占有內存資源,過多的使用閉包會導致內存溢出等。