Maison > interface Web > js tutoriel > le corps du texte

Exemple d'explication des paramètres restants dans ES6

不言
Libérer: 2018-11-14 15:38:30
avant
1955 Les gens l'ont consulté

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) {
}
Copier après la connexion

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)}
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

Traduire en utilisant babel

function add(...num){
  return num.reduce((n1,n2)=>n1+n2)
}
Copier après la connexion

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;
  });
}
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal