亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Javascript學習筆記之函數篇(四):arguments 對象

2019-11-20 13:53:39
字體:
來源:轉載
供稿:網友

每一個 Javascript 函數都能在自己作用域內訪問一個特殊的變量 - arguments。這個變量含有一個傳遞給函數的所有參數的列表。
arguments 對象不是一個數組。盡管在語法上它跟數組有相同的地方,例如它擁有 length 屬性。但它并不是從 Array.prototype 繼承而來,實際上,它就是一個對象。
因此,我們不能直接對 arguments 使用一些數組的方法,例如 push, pop 或 slice 等。 所以為了使用這些方法,我們就需要將其轉換為一個真正的數組。

轉化為數組

下面的代碼將會返回一個包含 arguments 對象所有元素的數組。

Array.prototype.slice.call(arguments);
由于轉化的速度很慢,所以在性能要求嚴格的程序中不建議這樣做。

傳遞參數

下面是一種比較推薦的方法,將 arguments 對象從一個函數傳遞到另一個函數。

復制代碼 代碼如下:

function foo() {
    bar.apply(null, arguments);
}
function bar(a, b, c) {
    // do stuff here
}

另外還有一個比較巧妙的方法,就是同時使用 call 和 apply 快速創建一個解綁的外層方法。

復制代碼 代碼如下:

function Foo() {}
Foo.prototype.method = function(a, b, c) {
    console.log(this, a, b, c);
};
// Create an unbound version of "method"
// It takes the parameters: this, arg1, arg2...argN
Foo.method = function() {
    // Result: Foo.prototype.method.call(this, arg1, arg2... argN)
    Function.call.apply(Foo.prototype.method, arguments);
};

函數形參和 arguments 屬性的關系

arguments 對象為它自身屬性和函數的形參都創建了 getter 和 setter 方法。
因此,修改函數的形參會影響對應的 arguments 對象的屬性值,反之亦然。

復制代碼 代碼如下:

function foo(a, b, c) {
    arguments[0] = 2;
    a; // 2
    b = 4;
    arguments[1]; // 4
    var d = c;
    d = 9;
    c; // 3
}
foo(1, 2, 3);

性能問題

arguments 只在兩種情況下不會被創建,一是在函數內部被聲明為局部變量,二是當做函數的形參。其他情況,arguments 對象總是會被創建。
由于 getter 和 setter 方法總是會隨著 arguments 對象的創建而創建,因此使用 arguments 對性能本身幾乎沒有影響。
然而,有一種情形會嚴重影響 Javascript 的性能,那就是使用 arguments.callee。

復制代碼 代碼如下:

function foo() {
    arguments.callee; // do something with this function object
    arguments.callee.caller; // and the calling function object
}
function bigLoop() {
    for(var i = 0; i < 100000; i++) {
        foo(); // Would normally be inlined...
    }
}

在上述代碼中,foo 函數不再是一個簡單的內聯擴展,因為它需要知道它自身以及它的調用者(caller)。這不僅抵消了內聯擴展所帶來的性能提升,同時也破壞了函數的封裝性,因為函數本身可能需要依賴于一個特定的調用背景。
因此,建議大家盡量不要使用 arguments.callee。

以上就是關于Javascript arguments 對象的全部內容了,小伙伴們是否了解透徹呢,簡單的說

arguments指函數的參數對象(指實際傳入的參數)
arguments.length指函數的參數對象的長度
arguments[i]指第i個參數的值(第一個為0)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲精品成人| 国内精品久久久久伊人av| 中文字幕亚洲一区二区三区五十路| 亚洲国产精品va在线观看黑人| 久久香蕉频线观| 亚洲欧美日韩国产精品| 国产日韩在线精品av| 深夜精品寂寞黄网站在线观看| 97视频在线观看网址| 亚洲综合中文字幕在线观看| 一区二区三区视频观看| 国产xxx69麻豆国语对白| 欧美激情欧美狂野欧美精品| 亚洲国产精品悠悠久久琪琪| 日韩av中文字幕在线播放| 欧美极品在线播放| 欧美成人在线网站| 亚洲精品在线视频| 国产精品毛片a∨一区二区三区|国| 5278欧美一区二区三区| 中文字幕亚洲综合久久| 日韩成人在线网站| 亚洲色图偷窥自拍| 亚洲天堂男人的天堂| 欧美电影第一页| 97人洗澡人人免费公开视频碰碰碰| 欧美床上激情在线观看| 亚洲亚裔videos黑人hd| 国产精品午夜视频| 黑人与娇小精品av专区| 亚洲影院色在线观看免费| 欧美日韩另类字幕中文| 欧美国产日产韩国视频| 亚洲视频日韩精品| 欧美激情一二区| 亚洲最大在线视频| 国产97在线|亚洲| 国产成人精品一区二区三区| 欧美一级大片在线免费观看| 日韩欧美国产中文字幕| 国产精品青青在线观看爽香蕉| 欧美黄色片免费观看| 日韩av网站电影| 亚洲人成电影网站色www| 国内精品久久久久伊人av| 日韩av不卡电影| 亚洲一区二区久久| 尤物yw午夜国产精品视频| 国产欧美最新羞羞视频在线观看| 国产丝袜一区二区三区| 精品视频一区在线视频| 亚洲激情在线观看视频免费| 亚洲视频欧洲视频| 国产精品视频导航| 国产一级揄自揄精品视频| 91午夜理伦私人影院| 欧美黑人一区二区三区| 亚洲国语精品自产拍在线观看| 亚洲精品久久7777777| 亚洲色在线视频| 亚洲国产私拍精品国模在线观看| 欧美激情第一页xxx| 亚洲自拍高清视频网站| 国产精品999999| 欧美男插女视频| 在线视频欧美日韩精品| 成人xvideos免费视频| 欧美激情在线观看| 国产精品普通话| 欧美性在线观看| 日韩激情av在线播放| 色偷偷av一区二区三区| 色偷偷噜噜噜亚洲男人的天堂| 亚洲精品电影在线| 国产精品影院在线观看| 日韩免费在线视频| 亚洲男人的天堂在线播放| 亚洲一区免费网站| 91久久综合亚洲鲁鲁五月天| 亚洲欧洲一区二区三区在线观看| 亚洲欧洲国产一区| 亚洲天堂男人的天堂| 欧美专区在线播放| 国产精品一区二区电影| 日韩禁在线播放| 欧美大全免费观看电视剧大泉洋| 51精品国产黑色丝袜高跟鞋| 97久久精品人搡人人玩| 亚洲精品免费网站| 欧美日韩中文在线| 亚洲精品成人久久久| 亚洲国产高潮在线观看| 亚洲成色777777在线观看影院| 欧美激情va永久在线播放| 国产综合福利在线| 亚洲欧洲免费视频| 成人福利在线视频| 亚洲曰本av电影| 亚洲老司机av| 精品久久久久久久久久| 日韩成人在线电影网| 欧美成人在线免费| 91热福利电影| 亚洲欧美中文日韩在线v日本| 色先锋久久影院av| 成人黄色午夜影院| 国产一区深夜福利| 欧美成人激情视频| 国产精品男女猛烈高潮激情| 国产午夜精品全部视频播放| 亚洲新中文字幕| 久久成人国产精品| 性色av一区二区三区免费| 国产一区二区在线免费| 日韩精品在线私人| 神马久久桃色视频| 欧美专区国产专区| 欧美一级免费看| 激情亚洲一区二区三区四区| 一区二区在线免费视频| 欧美情侣性视频| 日韩av在线影视| 日产精品99久久久久久| 久久综合电影一区| 91高清在线免费观看| 亚洲欧洲偷拍精品| 国产在线拍揄自揄视频不卡99| 欧美日韩高清在线观看| 久久久天堂国产精品女人| 欧美又大又硬又粗bbbbb| 91黑丝高跟在线| 中文字幕亚洲一区在线观看| 日韩精品在线免费播放| 精品无人区太爽高潮在线播放| 久久久精品亚洲| 91精品久久久久| 亚洲色图综合网| 久久91精品国产91久久久| 欧美一级电影在线| 欧美日韩在线一区| 亚洲精品日韩激情在线电影| 性欧美长视频免费观看不卡| 日韩精品在线观看一区二区| 亚洲精品狠狠操| 国产欧洲精品视频| 久久91精品国产91久久久| 亚洲电影av在线| 国产精品99一区| 性色av香蕉一区二区| 成人午夜在线视频一区| 日韩免费黄色av| 成人黄色av免费在线观看| 欧美日韩在线观看视频| 久久久久久久国产精品视频| 26uuu国产精品视频| 欧美成年人视频网站| 久久久中文字幕| 亚洲理论片在线观看| 中文字幕免费国产精品| 国产在线拍偷自揄拍精品| 国色天香2019中文字幕在线观看| 亚洲最新中文字幕| 欧美成人精品一区二区三区| 亚洲老板91色精品久久|