題目
????????????1.this的不同應用場景戏仓,如何取值
? ? ? ? ? ? 2.手寫bind函數(shù)
? ? ? ? ? ? 3.實際開發(fā)中閉包的應用場景酵紫,舉例說明
知識點
? ? ? ? ? ? 1.作用域和自由變量? ?
? ? ? ?作用域
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.全局作用域
????????????????????????????????2.函數(shù)作用域
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.塊級作用域(ES6新增)
? ? ? ? 自由變量
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.一個變量在當前作用域沒有定義,但被使用了
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.向上級作用域丑勤,一層一層依次尋找华嘹,直到找到為止
????????????????????????????????3.如果全局作用域沒有找到,則報錯:xx if not defined
????????????2.閉包
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? · 作用域應用的特殊情況法竞,有倆種表現(xiàn):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.函數(shù)作為參數(shù)被傳遞
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.函數(shù)作為返回值被返回
? ? ? ? · 自由變量的執(zhí)行是在函數(shù)定義的地方向上查找耙厚,不是在函數(shù)執(zhí)行的地方向上查找
???????3.this? ? ? ? ?
? ? ? ? ?· this取值是在函數(shù)執(zhí)行的時候確認的不是在函數(shù)定義的時候確認的? ?
? ? ? ? · 作為普通函數(shù)
? ? ? ? · 使用 call apply bind
? ? ? ? · 作為對象方法被調(diào)用
? ? ? ? · 在class方法中調(diào)用
? ? ? ? · 箭頭函數(shù)
?實際開發(fā)中閉包的應用
????????????· 隱藏數(shù)據(jù)
????????????· 做一個簡單的catch工具? ? ? ??