閉包(知識點)

1.什麼是閉包: 能夠讀取其他函數的內部變量的函數

2.閉包的作用域: 分爲全局變量 和 局部變量;(在函數內部一定要用var定義變量,
不然就是定義了一個全局的變量);

3.閉包的用途: 可以讀取函數內部的變量 函數的變量保存在內存流中 i值的安全性
(只有函數的子函數才能訪問) 通過保護變量實現js私有屬性和私有方法;

4.閉包的注意點: 由於閉包會使函數中的變量保存在內存中,內存消耗大,
在IE會造成內存泄漏,不使用的局部變量在最後刪除;

閉包會在父函數外部,改變父函數內部的值;把閉包當做公有的方法,
把函數內部的變量當做私有方法;

5.閉包 (子函數可以使用父函數的變量)
作用: 就是外面函數需要訪問函數內部的變量(正常的情況是不能訪問的);本質是將函數的內部和外部連接起來的橋樑;

6.閉包的微觀世界: 函數的執行環境 活動對象 作用域 作用域鏈

7.首先創建執行環境 –> 創建一個活動對象 –> 創建一個arguments對象 –>
分配作用域 –> 變量的實例化 –> 爲this關鍵字賦值

8.作用域 : 全局作用域 和 局部作用域

全局作用域 : 最外層函數和最外層函數外面定義的變量擁有全局的作用域;
所有未定義直接賦值的變量自動聲明爲擁有全局作用域;
一般情況下,window對象的內置屬性都擁有全局作用域,如: window.name window.location
局部變量: 和全局函數相反,局部作用域一般只在固定代碼片段內可以訪問到,最常見的就是函數的內部,有時候稱之爲函數作用域;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章