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

Explication détaillée sur le contenu lié à la fonction js

亚连
Libérer: 2018-06-04 11:24:13
original
1330 Les gens l'ont consulté

Cet article analyse brièvement les points de connaissances importants liés aux fonctions dans JS. Les amis qui sont intéressés peuvent s'y référer.

Il faut savoir qu'en js, le type référence est une structure de données, comprenant 5 types de référence, à savoir Objet, données, Array, merci de saisir le code gExp, Fonction. Aujourd'hui, nous allons parler de la structure des données de Function.

En js, les fonctions sont en fait des objets, et chaque fonction est une instance du type Function. Comme les autres types de référence, ils possèdent des propriétés et des méthodes.

1. Il existe plusieurs façons de définir des fonctions

1) Définition de la syntaxe de déclaration de fonction

  function sum(num1,num2){
  return num1+num2;
 }
Copier après la connexion

2) Expression de fonction

Notez qu'il y a un point-virgule après l'expression de la fonction ;

var sum=function(num1,num2){
   return num1+num2;
}
Copier après la connexion

Utilisez le constructeur de fonction

L'utilisation du constructeur peut recevoir n'importe quel nombre de paramètres, mais le dernier paramètre est toujours considéré comme Le corps de la fonction et les paramètres précédents énumèrent les paramètres

var sum=new Function("num1","num2","return num1+num2")
Copier après la connexion

Bien entendu, la troisième méthode n'est pas conviviale et n'est pas recommandée.

Les noms de fonctions ne sont que des pointeurs vers des fonctions, donc les noms de fonctions ne sont pas différents des autres variables contenant des pointeurs d'objet. Autrement dit, une fonction peut avoir plusieurs noms.
Quelle est la différence entre la déclaration de fonction et l'expression de fonction ici ?

Lorsque l'analyseur charge des données dans l'environnement d'exécution, il traite différemment les déclarations de fonction et les expressions de fonction. L'analyseur lit d'abord la déclaration de fonction et rend le code de déclaration de fonction appelable avant tout code. C'est ce que nous appelons habituellement le levage de déclaration de fonction. Les expressions de fonction sont différentes. Elles doivent attendre que l'analyseur de fonctions exécute le bloc de code où elles se trouvent avant d'être réellement exécutées. Comparez les 2 exemples suivants

console.log(sum(10,10));

function sum(n1,n2){
  return n1+n2;
}

以上代码会正常执行

再看!

console.log(sum(10,10));

var sum=function(n1,n2){
  return n1+n2;
}

以上执行器就会报错!
Copier après la connexion

2. Les fonctions ne sont pas surchargées

Si deux fonctions du même nom sont déclarées, le résultat est que cette dernière fonction écrase la fonction précédente.

function sun(a){
 return a+100;
}
function sun(a){
 return a+200;
}

var result=sum(2)//202
Copier après la connexion

3. Les attributs internes de la fonction

incluent ceci, des arguments

Les détails ne seront pas décrits à nouveau

4. Attributs et méthodes de la fonction

La fonction a 2 attributs, la longueur et le prototype

longueur indiquent le nombre de paramètres nommés que la fonction espère recevoir.

function a(name){
 //todo
}
function b(name,age){
 //todo
}
function c(){
 //todo
}

a.length //1
b.length //2
c.length //0
Copier après la connexion

L'attribut prototype est très important pour les types référence et sera expliqué spécifiquement, je n'entrerai donc pas dans les détails ici.

Chaque fonction contient 2 méthodes non héritées apply et call

Le but de ces deux méthodes est d'appeler la fonction dans une portée spécifique. En fait, il s'agit de définir cela dans la fonction. corps fait référence à la valeur.

Premièrement. La méthode apply() reçoit deux paramètres, l'un est la portée dans laquelle la fonction s'exécute et l'autre est le tableau de paramètres. Le deuxième paramètre peut être une instance du tableau ou des arguments.

function sum(num1,num2){
  return num1+num2;
}

function test1(a,b){
  return sum.apply(this,arguments);
}

function test2(c,d){
  return sum.apply(this.[c,d]);
}

console.log(test1(1,1)) //2

console.log(test2(1,1)) //2
Copier après la connexion

appel. méthode et La méthode apply ne fait pas beaucoup de différence. La différence est que le deuxième paramètre de la méthode d'appel doit être listé un par un.

Le plus grand avantage de l'utilisation de call et apply pour étendre la portée est que l'objet n'est couplé à aucune méthode

Ce qui précède est ce que j'ai compilé pour tout le monde, j'espère que cela sera utile. tout le monde dans le futur.

Articles connexes :

Comment encapsuler des composants réutilisables dans Vue

Comment utiliser les slots pour implémenter les slots dans Vue Distribuer du contenu

Comment obtenir la valeur dans select dans vue.js (tutoriel détaillé)

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!