1.閉包:
? ? ? 一個函數可以訪問另一個函數的局部變量
作用:
? ? ?把數據保護起來,把數據緩存起來
特征:
? ?1.有外層函數
? ?2.外層函數有局部變量
? ?3.有內層函數
? ?4.內層函數操作外層函數局部變量
? ?5.內層函數作為外層函數的返回值
缺點:
? ?局部變量一直在使用,瀏覽器關閉才回收-----會占據內存
2.沙箱
作用:
? ?在沙箱里面模擬真實的環境,然后把想要的操作完成之后,在沙箱的外面付諸實施
? 把代碼保護起來
寫法
自調用函數,局部作用域
(function(){
? ? ? ? ? ? 代碼寫這里
})();
3.遞歸
? ? 函數自己調用自己--有條件
? ?如果滿足某個條件,函數內部就繼續自己調用自己,否則結束
寫遞歸的過程
? ?1.假設有一個函數已經完成效果?
? ?2.把過程仔細分析,找規律
? ?3.把規律寫在函數體
? ?4.特殊情況特殊處理
用遞歸請n的階乘