javascript strict 模式下 callee 失效

ES 5的版本下,javascript 可以用  'use strict'; 指明進入strict 模式。

在stric 模式下,arguments.callee 是不能用的,因爲匿名函數已經可以命名,以前之所以提供 callee,是因爲無法對匿名函數命名,比如在下面這個匿名遞歸調用函數中:

  

[1,2,3,4,5].map(function (n) {
    return !(n > 1) ? 1 : arguments.callee(n - 1) * n;
});

 

現在,可以寫成如下,直接給函數命名: 

 

[1,2,3,4,5].map(function factorial (n) {
    return !(n > 1) ? 1 : factorial(n-1)*n;
});

 這樣可以讓代碼看起來更直觀些。

發佈了78 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章