亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以向JavaScript函數發送可變數量的參數?

是否可以向JavaScript函數發送可變數量的參數?

慕容708150 2019-08-03 07:03:21
是否可以向JavaScript函數發送可變數量的參數?可以從數組向JavaScript函數發送可變數量的參數嗎?var arr = ['a','b','c']var func = function(){     // debug      alert(arguments.length);     //     for(arg in arguments)         alert(arg);}func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'func(arr); // prints 1, then 'Array'我最近寫了很多Python,能夠接受varargs并發送它們是一個很好的模式。G.def func(*args):    print len(args)    for i in args:        print i func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'func(*arr) // prints 4 which is what I want, then 'a','b','c','d'是否可以在JavaScript中發送待處理的數組如參數數組?
查看完整描述

3 回答

?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

實際上,您可以將任意數量的值傳遞給任何javascript函數。顯式命名的參數將獲得前幾個值,但所有參數都將存儲在參數數組中。

要以“解壓縮”形式傳遞參數數組,可以使用Apply,如(c.f)。功能Javascript):

var otherFunc = function() {
   alert(arguments.length); // Outputs: 10}var myFunc = function() {
  alert(arguments.length); // Outputs: 10
  otherFunc.apply(this, arguments);}myFunc(1,2,3,4,5,6,7,8,9,10);



查看完整回答
反對 回復 2019-08-05
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

這個飛濺蔓延操作符是ES6的一部分,ES6是Javascript計劃的下一個版本。到目前為止,只有Firefox支持它們。此代碼在FF 16+中工作:

var arr = ['quick', 'brown', 'lazy'];var sprintf = function(str, ...args){
    for (arg of args) {
        str = str.replace(/%s/, arg);
    }
    return str;}sprintf.apply(null, ['The %s %s fox jumps over the %s dog.', ...arr]);
    sprintf('The %s %s fox jumps over the %s dog.', 'slow', 'red', 'sleeping');

注意擴展的笨拙語法。的常用語法sprintf('The %s %s fox jumps over the %s dog.', ...arr);尚未得到支持..你可以找到這里有一個ES6兼容性表.

還請注意for...of,另一個ES6加成。使用for...in數組是壞主意.




查看完整回答
反對 回復 2019-08-05
  • 3 回答
  • 0 關注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號