亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

longmon / 2521人閱讀

摘要:如下,一般在非嚴(yán)格模式下遞歸調(diào)用一般這樣使用但是如果代碼是在嚴(yán)格模式下開發(fā)結(jié)果在嚴(yán)格模式下不能通過腳本訪問訪問這個(gè)屬性會(huì)報(bào)錯(cuò),那么可以使用命名函數(shù)表達(dá)式來達(dá)到相同的結(jié)果以上代碼創(chuàng)建了一個(gè)名為的命名函數(shù)表達(dá)式,然后將它賦值給變量即是把函

如下,一般在非嚴(yán)格模式下遞歸調(diào)用一般這樣使用:

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

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

但是如果代碼是在嚴(yán)格模式下開發(fā):

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

console.log(factorial(4));

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

在嚴(yán)格模式下不能通過腳本訪問arguments.callee,訪問這個(gè)屬性會(huì)報(bào)錯(cuò),那么可以使用命名函數(shù)表達(dá)式來達(dá)到相同的結(jié)果:

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

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

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

在看一段代碼:

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/89774.html

相關(guān)文章

  • tipsJS之淺拷貝與深拷貝

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

    Soarkey 評(píng)論0 收藏0
  • 那些年,前端學(xué)習(xí)之路疑難雜癥(一):嚴(yán)格模式與非嚴(yán)格模式

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

    zombieda 評(píng)論0 收藏0
  • 嚴(yán)格模式

    摘要:嚴(yán)格模式創(chuàng)設(shè)了第三種作用域作用域。正常模式下,指向全局對(duì)象,如果綁定的值是非對(duì)象,將被自動(dòng)轉(zhuǎn)為對(duì)象再綁定上去,而和這兩個(gè)無法轉(zhuǎn)成對(duì)象的值,將被忽略嚴(yán)格模式 概述 嚴(yán)格模式是ES5進(jìn)入標(biāo)準(zhǔn)的目的是為了: 明確禁止一些不合理 不嚴(yán)謹(jǐn)?shù)恼Z法 減少JS語言的一些怪異行為 增加更多報(bào)錯(cuò)的場(chǎng)合 保證代碼運(yùn)行的安全 提高編譯效率 增加運(yùn)行速度 為新版的JS語法做鋪墊 如何開啟 使用一段字符串...

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

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

    kycool 評(píng)論0 收藏0
  • javascript - 嚴(yán)格模式

    摘要:概述嚴(yán)格模式是什么嚴(yán)格模式是中的一種限制性更強(qiáng)的變種方式。在嚴(yán)格模式下,靜默失敗會(huì)轉(zhuǎn)為報(bào)錯(cuò)。拋出錯(cuò)誤非嚴(yán)格模式下靜默錯(cuò)誤屬性名必須唯一在嚴(yán)格模式下,一個(gè)對(duì)象內(nèi)的所有屬性名必須唯一。非嚴(yán)格模式最后一個(gè)重名參數(shù)會(huì)覆蓋之前的重名參數(shù)。 概述 嚴(yán)格模式是什么 嚴(yán)格模式是JavaScript中的一種限制性更強(qiáng)的變種方式。嚴(yán)格模式可以和非嚴(yán)格模式共存,所以腳本可以逐漸的選擇性加入嚴(yán)格模式。 嚴(yán)格模...

    PrototypeZ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<