回覆列表
-
1 # 使用者7724478402265
-
2 # 低迷的風向
第一個return作用是返回立即執行函式(IIFE)的計算結果,即另一個function,返回的這個function賦值給了add變數。第二個return對應的就是你調add時會給你的返回值。
這裡這麼做的目的是利用閉包的特性隔離作用域,從而起到模擬區域性變數的效果。
假如你不這麼做,counter變數會被掛載到global作用域,瀏覽器端就是window物件上
函式物件可以透過作用域鏈相互關聯起來,函式體內部的變數都可以儲存在函式作用域內,這種特性在計算機科學文獻中稱之為“閉包”。 從技術角度講,所有的JavaScript函式都是閉包: 它們都是物件,它們都關聯到作用域鏈。實現計數器 介紹利用閉包實現計數器,請看以下程式碼:var counter = (function() { var count = 0; return function() { return count ++; } })();以上程式碼定義了一個立即執行的函式,count遍歷只能在這個匿名函式中可以使用。