2014-01-15 28 views
0

是否有隻會執行一次的函數的官方術語或單詞?我能想到的最簡單的例子就是這樣的閉包中的javascript函數。 (從here截取)只能執行一次的函數的分類

function createChance() { 
    var chanceLeft = true; 
    return function() { 
     if (chanceLeft) { 
      console.log("This was the only chance you had."); 
      chanceLeft = false; 
     } else { 
      console.log('Sorry: you already used your chance'); 
     } 
    }; 
} 

var chance = createChance(); 
chance(); 
// This was the only chance you had. 
chance(); 
// Sorry: you already used your chance 

回答

1

這被稱爲idempotent功能。無論你多少次調用它,在初始運行後都會返回相同的結果。有一個非常好的explanations(雖然注意對接受的注意答案的注意事項)在其他questions

這個blog發佈解釋了幾個冪等與非等冪的情景。我在下面粘貼了一個片段,以備將來發布消失。

購物車示例:

  • 不是冪:推動「訂單」在數據庫中創建一個新的訂單。
  • 冪等:推動「下訂單」將訂單4567從「購物車」移動到「最終確定」狀態。

現實世界的例子

  • 冪:給我比薩餅。
  • 不冪等:讓我成爲一個比薩餅。

密碼校驗的例子

  • 冪:檢查對哈希密碼數據庫
  • 不是冪:檢查密碼,並增加了失敗登錄嘗試,如果它是錯的

安裝軟件示例

  • 不是冪:安裝MongoDB的
  • 冪:安裝MongoDB中,如果尚未安裝

你可以通過這些例子看,和你的問題,一個冪函數,它對二,三,萬分之一等沒有影響。這是許多應用程序中的常見範例,即使它沒有設計「冪等」一詞。

+0

我並不知道ide ence的「超出最初應用」部分。謝謝。 –