国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

小tips:JS嚴格模式(use strict)下不能使用arguments.callee的替代方案

longmon / 2455人閱讀

摘要:如下,一般在非嚴格模式下遞歸調用一般這樣使用但是如果代碼是在嚴格模式下開發結果在嚴格模式下不能通過腳本訪問訪問這個屬性會報錯,那么可以使用命名函數表達式來達到相同的結果以上代碼創建了一個名為的命名函數表達式,然后將它賦值給變量即是把函

如下,一般在非嚴格模式下遞歸調用一般這樣使用:

function factorial(num){
    if(num<=1){
        return 1;
    }else {
        return num * arguments.callee(num-1);
    }
}

console.log(factorial(4)); //24

但是如果代碼是在嚴格模式下開發:

"use strict";
function factorial(num){
    if(num<=1){
        return 1;
    }else {
        return num * arguments.callee(num-1);
    }
}

console.log(factorial(4));

結果:Uncaught TypeError: "caller", "callee", and "arguments" properties may not be accessed on strict mode functions or the arguments objects for calls to them

在嚴格模式下不能通過腳本訪問arguments.callee,訪問這個屬性會報錯,那么可以使用命名函數表達式來達到相同的結果:

"use strict";
var factorial = (function f(num){
     if(num<=1){
        return 1;
    }else {
        return num * f(num-1);
    }
})

console.log(factorial(4)); //24

以上代碼創建了一個名為f()的命名函數表達式,然后將它賦值給變量factorial,即是把函數賦值給另外一個變量,函數的名字仍然有效。

在看一段代碼:

(function  foo(bar) {
  if (bar) {
    return;
  }
  foo(true);
})();

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89774.html

相關文章

  • tipsJS之淺拷貝與深拷貝

    摘要:淺拷貝深拷貝淺拷貝的問題如果父對象的屬性等于數組或另一個對象,那么實際上,子對象獲得的只是一個內存地址,而不是真正拷貝,因此存在父對象被篡改的可能。 淺拷貝: function extendCopy(p) {  var c = {};  for (var i in p) {    c[i] = p[i];  }  return c; } 深拷貝: function deepCopy(p...

    Soarkey 評論0 收藏0
  • 那些年,前端學習之路疑難雜癥(一):嚴格模式與非嚴格模式

    摘要:反之亦然非嚴格合并嚴格看起來是非嚴格的。在普通的里面給一個拼寫錯誤的變量名賦值會使全局對象新增一個屬性并繼續工作盡管后面可能出錯在現在的中有可能。第三嚴格模式禁止刪除聲明變量。 文章整理自MSDN:https://developer.mozilla.org... 1.逐步使用嚴格模式 ECMAScript 5的嚴格模式是JavaScript中的一種限制性更強的變種方式。嚴格模式不是一個...

    zombieda 評論0 收藏0
  • 嚴格模式

    摘要:嚴格模式創設了第三種作用域作用域。正常模式下,指向全局對象,如果綁定的值是非對象,將被自動轉為對象再綁定上去,而和這兩個無法轉成對象的值,將被忽略嚴格模式 概述 嚴格模式是ES5進入標準的目的是為了: 明確禁止一些不合理 不嚴謹的語法 減少JS語言的一些怪異行為 增加更多報錯的場合 保證代碼運行的安全 提高編譯效率 增加運行速度 為新版的JS語法做鋪墊 如何開啟 使用一段字符串...

    Yi_Zhi_Yu 評論0 收藏0
  • use strictJS(二):函數傳參模式arguments

    摘要:系列系列列表從看一與箭頭函數從看二函數傳參模式與的上一篇說到,對做了以下限定。是另外一個變量,指向不同的值,而這兩個值有相同的類型。函數中,和指向同一個值,更改的就等于更改了的。可以用改進問題是這個在嚴格模式下不能運行。 系列 系列列表:從use strict看JS(一):this與箭頭函數從use strict看JS(二):函數傳參模式與arguments use strict 的 ...

    kycool 評論0 收藏0
  • javascript - 嚴格模式

    摘要:概述嚴格模式是什么嚴格模式是中的一種限制性更強的變種方式。在嚴格模式下,靜默失敗會轉為報錯。拋出錯誤非嚴格模式下靜默錯誤屬性名必須唯一在嚴格模式下,一個對象內的所有屬性名必須唯一。非嚴格模式最后一個重名參數會覆蓋之前的重名參數。 概述 嚴格模式是什么 嚴格模式是JavaScript中的一種限制性更強的變種方式。嚴格模式可以和非嚴格模式共存,所以腳本可以逐漸的選擇性加入嚴格模式。 嚴格模...

    PrototypeZ 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<