Heim  >  Artikel  >  Web-Frontend  >  Beispielerklärung der verbleibenden Parameter in ES6

Beispielerklärung der verbleibenden Parameter in ES6

不言
不言nach vorne
2018-11-14 15:38:301947Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Codeerklärung der verbleibenden Parameter in ES6. Ich hoffe, dass er für Freunde hilfreich ist.

Übersicht

Die übrigen Parameter aggregieren Parameter ohne entsprechende formale Parameter in einem Array

Syntax

function(a, b, ...theArgs) {
}

Aggregieren Sie nur Parameter, die keinen formalen Parametern entsprechen

Die übrigen Parameter aggregieren nur Parameter ohne entsprechende formale Parameter in einem Array, während arguments alle Parameter enthält.

function add(a, b, ...theArgs) {
    return {rest: theArgs, arguments}
}
add() 
// {rest: [undefined, undefined, []], arguments: Arguments(0)}
add(1) 
// {rest: [1, undefined, []], arguments: Arguments(1)}
add(1, 2) 
// {rest: [1, 2, []], arguments: Arguments(2)}
add(1, 2, 3, 4, 5) 
// {rest: [1, 2, [3, 4, 5]], arguments: Arguments(5)}

Die restlichen Parameter sind Arrays

Die restlichen Parameter sind immer ein Array, im Gegensatz zu arguments, das ein Pseudo-Array ist

function add(...theArgs) {
    console.log(Array.isArray(theArgs))
    theArgs.forEach((a)=>console.log(a))
    console.log(Array.isArray(arguments))
    Array.prototype.slice.call(arguments, add.length).forEach((a)=>console.log(a)) // 转化成数组
}
add(1,2,3) // true 1 2 3 false 1, 2, 3, 4

Destrukturierung der restlichen Parameter

function add(...[a, b, c]){
    return a + b +c
}
add(1, 2, 3) // 6
add(1, 2, 3) // 6

Verwenden Sie babel, um

function add(...num){
  return num.reduce((n1,n2)=>n1+n2)
}

nach der Übersetzung

function add() {
  for (var _len = arguments.length, num = Array(_len), _key = 0; _key < _len; _key++) {
    num[_key] = arguments[_key];
  }

  return num.reduce(function (n1, n2) {
    return n1 + n2;
  });
}
zu übersetzen

Das obige ist der detaillierte Inhalt vonBeispielerklärung der verbleibenden Parameter in ES6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen