>[danger]**1. 概念**
>[info]閉包就是兩個函數,一個函數包含另一個函數,在函數外使用函數內的局部變量,并且在函數執行后,內存不被釋放,外面的函數就叫閉包;
>[danger]**2. 在函數外調用函數內的局部變量**
~~~
function t1(){
//定義一個局部變量
var a = 999;
//定義一個可以獲取局部變量的函數
function t2(){
console.log(a++);
}
return t2;
}
f = t1(); // 將t1()函數返回賦值給f,那么f = t2;
e = f(); // e = t2();
console.log(e); //調用t2函數第1次 1;
console.log(e); //調用t2函數第2次 2;
console.log(e); //調用t2函數第3次 3;
~~~
>[danger]**3. 練習(點擊下面的li標簽,彈出它的下標)**
~~~
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
~~~
~~~
function outlog(i){
function inlog(){
alert(i);
}
return inlog;
}
//捕獲所有的li標簽DOM節點對象
var lis = document.getElementsByTagName('li');
for(var i = 0;i < lis.length;i++){
//綁定事件,點擊某個li標簽的時候,執行outlog函數
lis[i].onclick = outlog(i);
}
~~~
- 概要
- HTML
- CSS
- PHP
- Mysqli
- Mysqli 連接查詢
- Mysqli 左外連接查詢
- Mysqli 右外連接查詢
- JavaScript
- JS 變量和常量的定義
- JS 運算符
- JS 流程控制
- JS 函數
- JS 數組
- JS數據類型
- JS 錯誤處理
- JS作用域
- JS 節點操作
- JS 遺留DOM
- JS 閉包
- JS 對象(構造函數)
- JS JSON
- JS 節點屬性操作
- JS 設置CSS樣式
- JS 獲取元素位置
- JS 事件
- JS 內置對象
- String 對象
- Date 對象
- Array 對象
- Math 對象
- Window 對象
- navigator 對象
- screen 對象
- location 對象
- Ajax
- 創建 Ajax 對象(兼容)
- AJax 對象屬性和方法
- Ajax get 五步驟
- Ajax post 六步驟
- Ajax get&post 封裝
- XML
- XML 語法&格式
- DOM 節點創建XML
- PHP 創建XML
- xmlwrite 類創建XML
- xmlReader 類解析xml
- JQuery
- JQuery 選擇器
- JQuery 事件
- JQuery 節點之間的操作
- JQuery html屬性設置
- JQuery Class屬性設置
- JQuery CSS樣式設置值
- JQuery 文本內容獲取
- JQuery 動畫特效
- JQuery 數組&對象遍歷
- JQuery 對象擴展方法
- JQuery Ajax操作
- JQuery Pjax
- JQuery Layer前端框架
- JQuery validation 插件
- ThinkPHP5
- 數據庫配置
- 基本操作
- 查詢構造器
- 查詢數據
- 增加數據
- 更新數據
- 刪除數據
- Session
- Cookie
- Linux
- 指令分類
- 文件屬性
- 文件處理命令
- 幫助命令
- 解壓縮命令
- 網絡通信命令
- 系統開關機
- Shell使用技巧
- VIM+vi 指令