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;
});
這樣可以讓代碼看起來更直觀些。