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

Introduction aux problèmes et aux différences entre les fonctions apply et Math.max() dans js

亚连
Libérer: 2018-05-28 17:10:41
original
1687 Les gens l'ont consulté

Cet article présente principalement les problèmes des fonctions apply et Math.max() dans js. Cet article vous apporte deux réponses. Chaque réponse vous est présentée en détail, js est mentionné. ceux qui sont intéressés devraient jeter un œil à la différence entre Math.max.apply et Math.max

Laissez-moi vous présenter les problèmes des fonctions apply et Math.max() en js. Le contenu spécifique est le suivant. suit :

var arr=[1,3,6,3,7,9,2];
console.log(Math.max.apply(null,arr));
Copier après la connexion

Je ne comprends toujours pas pourquoi cela peut calculer la valeur maximale d'un tableau ? Je n'arrive toujours pas à comprendre, veuillez donner quelques conseils d'un expert js.

Réponse 1

Function.apply() est une fonctionnalité POO de JS. Elle est généralement utilisée pour simuler l'héritage et étendre l'utilisation de. this. For Le code ci-dessus peut être compris comme ceci :

XXX.apply est une méthode d'appel d'une fonction, et ses paramètres sont : apply(Function, Args),

Function est le méthode à appeler, Args est la liste de paramètres. Lorsque Function est nulle, la valeur par défaut
est

Math.max.apply(null, arr)
Copier après la connexion

qui peut être. considéré comme

apply(Math.max, arr)
Copier après la connexion

Alors, arr est une liste de paramètres Pour la méthode max, ses paramètres sont plusieurs nombres, c'est-à-dire

<🎜. >

Math.max(a, b, c, d, ...)
Copier après la connexion
Copier après la connexion

Lorsque vous utilisez apply, ajoutez tous les paramètres à un tableau, c'est-à-dire

arr = [a, b, c, d, ...]
Copier après la connexion

est substitué dans la formule originale,

Math.max.apply(null, [a, b, c, d, ...])
Copier après la connexion

est en fait équivalent à

Math.max(a, b, c, d, ...)
Copier après la connexion
Copier après la connexion

Ici, utilisez apply L'avantage est d'améliorer les performances de certains moteurs JS.

La méthode Réponse 2

prend en charge la transmission de plusieurs paramètres, tels que : Math.max()Math.max(1,4,2,3,7,5,6)

Mais directement passer un tableau en paramètre n'est pas pris en charge, comme :

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

Ici, tant que nous avons un moyen de diviser le tableau un par un et de le transmettre à la méthode Math.max(), la méthode de transmission du tableau est implémentée.

Toutes les fonctions ont la méthode apply (chaîne de portée, paramètre). Le "paramètre" de cette fonction reçoit un tableau, sépare chaque valeur du tableau et la transmet à l'appelant

Supplémentaire :

La différence entre Math.max.apply et Math.max en Javascript

Javascript Le Math.max La méthode in peut trouver le plus grand nombre parmi les paramètres donnés.

> Math.max(&#39;1&#39;,&#39;2&#39;,&#39;3.1&#39;,&#39;3.2&#39;)
< 3.2
> Math.min(1,0,-1)
< -1
Copier après la connexion


Mais s'il s'agit d'un tableau, il ne peut pas être appelé comme ça.

La méthode d'application est utilisée à ce moment :

apply 方法 (Function) (JavaScript)
调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数。
apply([thisObj[,argArray]])
thisObj
  可选。 要用作 this 对象的对象。
argArray
Copier après la connexion

Facultatif. Un ensemble d'arguments à transmettre à la fonction.

Créez intelligemment des tableaux qui appellent également Math.max et Math.min.

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

Ce qui précède est ce que j'ai compilé pour vous. J'espère qu'il vous sera utile à l'avenir.

Articles connexes :

Méthode de téléchargement Ajax pour implémenter le traitement js basé sur les données de retour côté serveur

Double couche intégration ajax Ensemble d'exemples d'utilisation (peut être multicouche)

Implémentation Ajax du code de fonction de sélection de ville contextuelle sans actualisation

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:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!