Maison  >  Article  >  interface Web  >  Exemple d'explication des paramètres restants dans ES6

Exemple d'explication des paramètres restants dans ES6

不言
不言avant
2018-11-14 15:38:301947parcourir

Le contenu de cet article concerne l'explication du code des paramètres restants dans ES6. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Aperçu

Les paramètres restants agrègent les paramètres sans paramètres formels correspondants dans un tableau

Syntaxe

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

Agréger uniquement les paramètres qui ne correspondent pas aux paramètres formels paramètres

Les paramètres restants regrouperont uniquement les paramètres sans paramètres formels correspondants dans un tableau, tandis que arguments contient tous les paramètres.

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)}

Les paramètres restants sont des tableaux

Les paramètres restants sont toujours un tableau, contrairement à arguments qui est un pseudo-tableau

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

Déconstruire le reste paramètres

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

Traduire en utilisant babel

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

Après la traduction

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;
  });
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer