Heim > Web-Frontend > js-Tutorial > Einführung in die Probleme und Unterschiede zwischen den Funktionen apply und Math.max() in js

Einführung in die Probleme und Unterschiede zwischen den Funktionen apply und Math.max() in js

亚连
Freigeben: 2018-05-28 17:10:41
Original
1793 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich die Probleme mit den Funktionen „Apply“ und „Math.max()“ in js vorgestellt. Am Ende des Artikels wird js ausführlich erwähnt Wer interessiert ist, sollte sich den Unterschied zwischen Math.max.apply und Math.max ansehen

Lassen Sie mich Ihnen die Probleme der Funktionen apply und Math.max() in js vorstellen. Der spezifische Inhalt ist wie folgt folgt:

var arr=[1,3,6,3,7,9,2];
console.log(Math.max.apply(null,arr));
Nach dem Login kopieren

Ich verstehe immer noch nicht, warum dies den Maximalwert eines Arrays berechnen kann? Ich kann es immer noch nicht herausfinden. Bitte geben Sie einen Rat von einem JS-Experten.

Antwort 1

Function.apply() ist eine OOP-Funktion von JS. Sie wird im Allgemeinen verwendet, um die Vererbung zu simulieren und die Verwendung von zu erweitern Dies. Der obige Code kann wie folgt verstanden werden:

XXX.apply ist eine Methode zum Aufrufen einer Funktion und ihre Parameter sind: apply(Function, Args),

Function ist die Die aufzurufende Methode Args ist die Parameterliste. Wenn die Funktion null ist, wird standardmäßig

Math.max.apply(null, arr)
Nach dem Login kopieren

verwendet

apply(Math.max, arr)
Nach dem Login kopieren

Dann ist arr eine Parameterliste. Für die Max-Methode sind ihre Parameter mehrere Zahlen, also

Math.max(a, b, c, d, ...)
Nach dem Login kopieren
Nach dem Login kopieren

Wenn Sie apply verwenden, fügen Sie alle Parameter zu einem Array hinzu, das heißt,

arr = [a, b, c, d, ...]
Nach dem Login kopieren

wird in die ursprüngliche Formel eingesetzt,

Math.max.apply(null, [a, b, c, d, ...])
Nach dem Login kopieren

entspricht tatsächlich

Math.max(a, b, c, d, ...)
Nach dem Login kopieren
Nach dem Login kopieren

Hier liegt der Vorteil der Verwendung von apply um die Leistung in einigen JS-Engines zu verbessern.

Antwort 2

Methode unterstützt die Übergabe mehrerer Parameter, wie zum Beispiel: Math.max()Math.max(1,4,2,3,7,5,6)

Aber direkt Die Übergabe eines Arrays als Parameter wird nicht unterstützt, z. B.:

. Math.max(new Array(1,4,2,3,7,5,6))

Solange wir eine Möglichkeit haben, das Array einzeln aufzuteilen und an die Math.max()-Methode zu übergeben, ist die Methode zur Übergabe des Arrays implementiert.

Alle Funktionen verfügen über die Apply-Methode (Bereichskette, Parameter). Der „Parameter“ dieser Funktion empfängt ein Array, trennt jeden Wert im Array und übergibt ihn an den Aufrufer

Ergänzung:

Der Unterschied zwischen Math.max.apply und Math.max in Javascript

Javascript Der Math.max Methode in kann die größte Zahl unter den angegebenen Parametern finden.

> Math.max('1','2','3.1','3.2')
< 3.2
> Math.min(1,0,-1)
< -1
Nach dem Login kopieren


Aber wenn es ein Array ist, kann es nicht so aufgerufen werden.

Zu diesem Zeitpunkt wird die Apply-Methode verwendet:

apply 方法 (Function) (JavaScript)
调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数。
apply([thisObj[,argArray]])
thisObj
  可选。 要用作 this 对象的对象。
argArray
Nach dem Login kopieren

Optional. Eine Reihe von Argumenten, die an die Funktion übergeben werden sollen.

Sorgen Sie dafür, dass Arrays auch Math.max und Math.min aufrufen.

> Math.max.apply(null, [&#39;1&#39;,&#39;2&#39;,&#39;3.1&#39;,&#39;3.2&#39;])
< 3.2
> Math.min.apply(null, [1,0,-1])
< -1
Nach dem Login kopieren

Das oben Gesagte habe ich für Sie zusammengestellt. Ich hoffe, es wird Ihnen in Zukunft hilfreich sein.

Verwandte Artikel:

Ajax-Upload-Methode zur Implementierung der JS-Verarbeitung basierend auf serverseitigen Rückgabedaten

Doppelschicht Ajax-Einbettung Satz von (kann mehrschichtigen) Anwendungsbeispielen

Ajax-Implementierung des Funktionscodes für die Popup-Stadtauswahl ohne Aktualisierung

Das obige ist der detaillierte Inhalt vonEinführung in die Probleme und Unterschiede zwischen den Funktionen apply und Math.max() in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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