Heim > Web-Frontend > js-Tutorial > Verwendung und Unterschiede zwischen den Funktionen apply und Math.max()

Verwendung und Unterschiede zwischen den Funktionen apply und Math.max()

php中世界最好的语言
Freigeben: 2018-05-03 10:37:11
Original
1239 Leute haben es durchsucht

Dieses Mal werde ich Ihnen die Verwendung und den Unterschied zwischen den Funktionen apply und Math.max() vorstellen. Was sind die Vorsichtsmaßnahmen über die Verwendung und den Unterschied zwischen den Funktionen apply und Math.max() ist ein praktischer Fall. Stehen Sie auf und werfen Sie einen Blick darauf.

Im Folgenden werden Ihnen die Probleme der Funktionen apply und Math.max() in js vorgestellt. Der spezifische Inhalt ist wie folgt:

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

Ich habe nie verstanden, warum ein Array ? 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, die im Allgemeinen zur Simulation von

Vererbung und verwendet wird Um diesen Zweck zu erweitern, kann der obige Code wie folgt verstanden werden:

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

Funktion ist die aufzurufende Methode, Args ist die Parameterliste. Wenn Funktion null ist, ist der Standardwert wie oben,

, d. h.

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

apply(Math.max, arr)
Nach dem Login kopieren
betrachtet werden. Dann arr ist eine Parameterliste. Für die Max-Methode sind ihre Parameter mehrere Zahlen, d. h.

Math.max(a, b, c, d, ...)
Nach dem Login kopieren
Nach dem Login kopieren
. Bei Verwendung von apply werden alle Parameter zu einem Array hinzugefügt, d Die ursprüngliche Formel

arr = [a, b, c, d, ...]
Nach dem Login kopieren
entspricht tatsächlich

Math.max.apply(null, [a, b, c, d, ...])
Nach dem Login kopieren
. Hier besteht der Vorteil der Verwendung von apply darin, die Leistung in einigen JS-Engines zu verbessern.

Antwort 2

Methode unterstützt die Übergabe mehrerer Parameter, wie zum Beispiel:

Math.max()Aber direkt Die Übergabe eines Arrays als Parameter wird nicht unterstützt, z. B.: Math.max(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. Math.max(new Array(1,4,2,3,7,5,6))

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

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

Math.max(a, b, c, d, ...)
Nach dem Login kopieren
Nach dem Login kopieren
Aber wenn es ein Array ist, kann es nicht so aufgerufen werden.

Zu diesem Zeitpunkt wird die Apply-Methode verwendet:

> Math.max('1','2','3.1','3.2')
< 3.2
> Math.min(1,0,-1)
< -1
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.

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

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Ausführliche Erklärung der Verwendung von Vue Watch


Detaillierte Erklärung der Schritte zur Einführung des Symbolsymbols in Vue Projekt

Das obige ist der detaillierte Inhalt vonVerwendung und Unterschiede zwischen den Funktionen apply und Math.max(). 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