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

Qu'est-ce qu'une fonction anonyme en JavaScript ? Brève analyse des scénarios d'application

青灯夜游
Libérer: 2022-08-04 13:10:36
avant
2317 Les gens l'ont consulté

Les fonctions anonymes, comme leur nom l'indique, font référence à des fonctions sans nom. Elles sont très fréquemment utilisées dans le développement réel et font également l'objet d'un bon apprentissage de JS. L'article suivant vous donnera une introduction détaillée aux fonctions anonymes en JavaScript. J'espère qu'il vous sera utile !

Qu'est-ce qu'une fonction anonyme en JavaScript ? Brève analyse des scénarios d'application

Fonction anonyme : une fonction sans nom réel.

Nous déclarons d'abord une fonction normale :

//声明一个普通函数,函数的名字叫fn
function fn(){
    console.log("web-chubby");
}
Copier après la connexion

Ensuite, supprimons le nom de la fonction pour devenir une fonction anonyme :

//匿名函数,咦,运行时,你会发现报错啦!
function (){
    console.log("web-chubby");
}
Copier après la connexion

À ce stade, vous constaterez que l'exécution d'une fonction anonyme seule signalera une erreur car elle le fait ne répond pas aux exigences grammaticales !

Quest-ce quune fonction anonyme en JavaScript ? Brève analyse des scénarios dapplication

Solution : Mettez simplement la fonction anonyme entre parenthèses pour en faire une expression :

//匿名函数在其它应用场景括号可以省略
(function (){
    //由于没有执行该匿名函数,所以不会执行匿名函数体内的语句。
    console.log("web-chubby");
})
Copier après la connexion

Comment exécuter et utiliser des fonctions anonymes ?

1. Exécuter une fonction anonyme

Si vous devez exécuter une fonction anonyme, ajoutez simplement des parenthèses après la fonction anonyme, c'est-à-dire exécutez la fonction immédiatement

  • Les parenthèses enveloppent uniquement la fonction anonyme et suivent le Parenthèses d'exécution (couramment utilisées)

(function () {
      alert('匿名函数执行方式一')
})();
Copier après la connexion
  • Les parenthèses enveloppent les fonctions anonymes et les parenthèses qui exécutent des fonctions anonymes pour former une expression globale

2. Passage de paramètres de fonction anonyme

et autres passages de paramètres ordinaires. pareil, écrivez simplement les paramètres directement entre parenthèses :

 (function (m) {
      alert(m)
    }('这是匿名函数传进来的参数'));
Copier après la connexion

Application de la fonction anonyme

  • Méthode de liaison des événements

<input type="button" value="点我啊!" id="sub">
<script>
    //获得按钮元素
    var sub=document.querySelector("#sub");
    //给按钮增加点击事件。
    sub.onclick=function(){
        alert("当点击按钮时会执行到我哦!");
    }
</script>
Copier après la connexion
  • L'expression de fonction attribue la fonction anonyme à un attribut de fonction dans un variable

//将匿名函数赋值给变量fn。
var fn=function(){
    return "我是一只小小小小留下,怎么飞也飞不高!"
}
//调用方式与调用普通函数一样
console.log(fn());//我是一只小小小小留下,怎么飞也飞不高!
Copier après la connexion
  • object

var obj={
    name:"web-chubby",
    age:18,
    fn:function(){
        return "我叫"+this.name+"今年"+this.age+"岁了!";
    }
};
console.log(obj.fn());//我叫web-chubby今年18岁了!
Copier après la connexion
  • fonction de rappel, prenant la fonction anonyme comme l'un des paramètres

 //过滤出值为9的值
    let numArr = [1, 5, 9, 10]
    let newArr = numArr.filter(function (item) {
      if (item !== 9) {
        return item
      }
    });
Copier après la connexion
  • La fonction renvoie la valeur, c'est-à-dire que la fonction est utilisée comme un valeur de retour

//将匿名函数作为返回值
function fn(){
    //返回匿名函数
    return function(){
        return "web-chubby";
    }
}
//调用匿名函数
console.log(fn()());//web-chubby
//或
var box=fn();
console.log(box());//web-chubby
Copier après la connexion

Imite la portée au niveau du bloc

la portée au niveau du bloc, qui est appelée portée privée à certains endroits. Il n'y a pas de portée au niveau du bloc en JavaScript. Par exemple :

if(1==1){//条件成立,执行if代码块语句。
    var a=12;//a为全局变量
}
console.log(a);//12
for(var i=0;i<3;i++){
    console.log(i);
}
console.log(i);//4
Copier après la connexion

if(){}for(){}, etc. n'ont pas leur propre portée. Si elle sort de sa propre portée, la variable déclarée sera immédiatement détruite. Mais nous pouvons simuler la portée au niveau du bloc grâce à des fonctions anonymes :

(function(){
    //这里是我们的块级作用域(私有作用域)
})();
Copier après la connexion

Essayez la portée au niveau du bloc :

function fn(){
    (function(){
        var la="啦啦啦!";
    })();
    console.log(la);//报错---la is not defined
}
fn();
Copier après la connexion

Le rôle des fonctions anonymes :

1 Les fermetures peuvent être implémentées via des fonctions anonymes plus tard. concentrez-vous sur l’explication. Une introduction rapide ici : une fermeture est une fonction qui peut accéder aux variables définies dans la portée de la fonction. Pour créer une fermeture, vous devez souvent utiliser une fonction anonyme.

2. Simulez la portée au niveau du bloc et réduisez les variables globales. Après avoir exécuté la fonction anonyme, les variables correspondantes stockées en mémoire seront détruites, économisant ainsi de la mémoire. De plus, dans les projets de développement à grande échelle impliquant plusieurs personnes, l'utilisation d'une portée au niveau des blocs réduira considérablement le problème des conflits de noms, évitant ainsi des conséquences catastrophiques. Les développeurs n’ont plus à craindre de gâcher la portée mondiale.

【Recommandations associées : Tutoriel d'apprentissage Javascript

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:csdn.net
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!