Heim > Web-Frontend > js-Tutorial > Verbleibende Parameter der ECMAScript6-Funktion (Restparameter)_Javascript-Kenntnisse

Verbleibende Parameter der ECMAScript6-Funktion (Restparameter)_Javascript-Kenntnisse

WBOY
Freigeben: 2016-05-16 15:55:36
Original
1572 Leute haben es durchsucht

Wir wissen, dass es in der JS-Funktion ein Argumentobjekt gibt, das alle tatsächlichen Parameter abrufen kann. Jetzt hat uns ES6 ein neues Objekt gebracht, das die Parameter außer den Startparametern, also den restlichen Parametern (viel Unsinn O(∩_∩)O~) abrufen kann.

Dieses neue Objekt unterscheidet sich von Argumenten. Es handelt sich um einen vom Programmierer angepassten allgemeinen Bezeichner. Ihm müssen lediglich drei Punkte vorangestellt werden:...

function func(a, ...rest) {
 console.log(a)
 console.log(rest)
}
func(1)
func(1, 2, 3, 4)
Nach dem Login kopieren

Achten Sie auf den zweiten Parameter rest von func, der drei Punkte davor hat. Nach der Definition wurde es zweimal aufgerufen und die Ergebnisse sind wie folgt

Sie können sehen, dass beim ersten Aufruf rest ein leeres Array und beim zweiten Aufruf [2, 3, 4] ist.

Ein weiteres Beispiel: Definieren Sie vorne 2 Parameter

function func(a, b, ...rest) {
 console.log(a, b)
 console.log(rest)
}
func(1, 2)
func(1, 2, 3, 4)
Nach dem Login kopieren

Die Ausgabeergebnisse sind wie folgt

Anhand der beiden oben genannten Beispiele sollten Sie die Bedeutung der übrigen Parameter verstanden haben.

Es sind noch Parameter vorhanden. Befolgen Sie daher später keine anderen Parameter, da sonst ein Fehler gemeldet wird

function func(a, ...rest, b) {
 
}
Nach dem Login kopieren

Ein Parameter b wird nach dem Ruhen hinzugefügt und Firefox meldet einen Fehler

Wenn Sie die verbleibenden Parameter verwenden, wird das Längenattribut der Funktion einige Änderungen erfahren

function func(a, b, ...rest) {
}
func.length // 2
Nach dem Login kopieren

Das heißt, die Länge beinhaltet keine Pausen und beträgt 2.

Einige Schüler fragen sich vielleicht: Können vor den verbleibenden Parametern keine Parameter stehen? Die Antwort ist ja

function func(...rest) {
 console.log(rest)
}
func(1) // [1]
func(1, 2, 3, 4) // [1,2,3,4]
Nach dem Login kopieren

Der Rest hier hat tatsächlich ähnliche Funktionen wie Argumente. Einige Schüler denken, dass dies Argumente ersetzen kann? ECMAScript hat diese Absicht bereits im aufgegebenen ES4 (Studenten, die mit AS3 vertraut sind, sollten dies wissen). Nachdem ES4 aufgegeben wurde, wurden Rest-Parameter in ES6 beibehalten.

Bitte beachten Sie, dass rest nicht mit Argumenten verwendet werden kann und ein Fehler gemeldet wird

function func(...rest) {
 console.log(rest)
 console.log(arguments)
}
Nach dem Login kopieren

Die Firefox-Konsole sieht wie folgt aus

Der Unterschied zwischen Argumenten und verbleibenden Parametern

arguments ist ein Pseudo-Array (Array-ähnlich)
Die restlichen Parameter sind ein echtes Array (Array), mit allen Methoden auf Array.prototype
Es gibt den Angerufenen bei Argumenten und den Anrufer
beim Angerufenen. Wie zum Beispiel

function func(a, ...rest) {
  console.log(rest instanceof Array)
}
func(1, 2) // true

Nach dem Login kopieren

Abschließend enden wir mit einer praktischen Anwendung der restlichen Parameter

/*
 * 任意个数相加
 *
 * **示例**
 * sum(1)
 * sum(1, 2)
 * sum(1, 2, 3)
 */
function sum(first, ...rest) {
  var result = first
  var i = 0
  var len = rest.length
  while (i < len) {
    result += rest[i]
    i++
  }
  return result
}
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage