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

Qu'est-ce que cela indique dans une fonction JavaScript ?

清浅
Libérer: 2018-11-27 10:53:41
original
2443 Les gens l'ont consulté

Aujourd'hui, je vais partager avec vous un point de connaissance important en JavaScript, celui-ci a une certaine valeur de référence et j'espère qu'il sera utile à l'apprentissage de chacun.

Nous sommes souvent confus lors de l'apprentissage du mot-clé this. Nous ne savons pas à quoi il fait référence dans la fonction et comment l'utiliser. Aujourd'hui, je vais vous présenter les détails à ce sujet dans l'article. .Connaissances

[Cours recommandés : Tutoriel JavaScript]

Contexte et this Mots-clés

En JavaScript, une fonction a son propre contexte d'exécution. Faites particulièrement attention ici au fait que le contexte d'exécution d'une fonction ne concerne pas la façon dont elle est déclarée, ni ce que fait la fonction, mais comment. pour l'appeler en code, nous l'utiliserons lors de l'appel de ce contexte d'exécution. Lorsqu'on y accède depuis une fonction, son contexte d'exécution est réellement accédé.

La méthode d'appel de la fonction est la même que celle-ci

Le contexte dépend de la méthode d'appel de la fonction On peut appeler la fonction du contexte en 4. de différentes manières, il existe donc également quatre types de ce Différents pointeurs

1. Un appel de fonction de base

2 Utiliser l'objet contextuel pour appeler la fonction, également appelé liaison implicite.

3. Utilisez call() ou appelez la fonction apply(), également appelée liaison explicite.

4. Liaison via la méthode bind()

Appel de fonction de base

L'appel de fonction de base est le moyen le plus simple d'appeler une fonction

Exemple :

<script type="text/javascript">
	var name="张三";
	function student(){
		console.log(this.name);
	}
	student();
</script>
Copier après la connexion

Image 1.jpg

Dans cet exemple, on peut voir que student() appelle la fonction depuis la portée globale, donc ceci fait ici référence au global scope , donc le résultat de sortie est ""张三""

Liaison implicite

Quand une fonction est "contenue" par un objet, on dit que le this de la fonction est implicitement liée à cet objet

<script type="text/javascript">
var student={
	name:"张三",
	obj:function(){
		console.log(this.name)
	}
}
student.obj();
	</script>
Copier après la connexion

Image 2.jpg

Bien que la fonction obj soit placée dans l'objet, elle ne sera pas utilisée car elle est définie à l'intérieur de l'objet différent. de l'extérieur, sous liaison implicite, obj peut toujours accéder à la propriété a dans l'objet étudiant via cette

Liaison explicite

peut utiliser call() ou apply() La méthode appelle une fonction, et son contexte d'exécution est explicitement lié à l'objet. call et apply peuvent changer cela pour pointer vers

Exemple : lorsque call () ou apply () n'est pas utilisé

<script type="text/javascript">
var name="张三";
var obj = {
	name:"李四",
	fun:function(){
	console.log(this.name);}}
obj.fun();
</script>
Copier après la connexion

Image 3.jpg

Utilisez call() pour faire valoir ce point dans la fenêtre

<script type="text/javascript">
var name="张三";
var obj = {
name:"李四",
fun:function(){
      onsole.log(this.name);}}
       obj.fun.call(window);
</script>
Copier après la connexion

Image 1.jpg


liaison bind()

bind() créera une fonction La valeur de cet objet dans le corps de la fonction sera liée à la valeur du premier paramètre passé dans bind(), mais bind(). ne sera pas exécuté. Fonction, renvoie uniquement une fonction qui peut être exécutée

<script type="text/javascript">
var a = {
	b : function(){
		var func = function(){
			console.log(this.c);
		}
		func.bind(this)();
	},
	c : &#39;Hello!&#39;
}
a.b();
	</script>
Copier après la connexion


Pointez-la vers le contenu de l'objet c via la méthode bind.

Image 4.jpg

Résumé : Ce qui précède est tout le contenu de cet article, nous pouvons voir que celui qui appelle ceci pointe vers qui globalement cela pointe vers la fenêtre ; les méthodes call(), apply() et bind() peuvent changer le pointeur de ceci.



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!