Maison > interface Web > js tutoriel > Exemples pour expliquer comment résoudre cette erreur de pointage en JavaScript (tutoriel image et texte)

Exemples pour expliquer comment résoudre cette erreur de pointage en JavaScript (tutoriel image et texte)

亚连
Libérer: 2018-05-21 09:48:23
original
1872 Les gens l'ont consulté

La gestion de ce pointeur en JavaScript est un casse-tête courant pour tout le monde. Nous donnons ici un exemple pour expliquer la solution à l'erreur de ce pointeur en JavaScript. Les amis dans le besoin peuvent se référer à

pour voir ce qui suit. définition de l'objet :

'use strict'
var jane = {
  name : ‘Jane',
  display : function(){
    retrun 'Person named ' + this.name;
  }
};
Copier après la connexion

De cette façon, vous pouvez appeler

jane.display();
Copier après la connexion

L'appel suivant va mal tourner :

var func = jane.display;
func()
Copier après la connexion

TypeError: Cannot read property 'name' of undefined
Copier après la connexion
Copier après la connexion

Parce que ce pointeur a été modifié, la manière correcte est la suivante :

var func2 = jane.display.bind(jane);
func2()
Copier après la connexion

'Penson named Jane'
Copier après la connexion

Toutes les fonctions ont leur particularité this variable , comme forEach< ci-dessous 🎜>

var jane = {
  name : &#39;Jane&#39;,
  friends: [&#39;Tarzan&#39;, &#39;Cheeta&#39;],
  sayHiToFriends: function(){
    &#39;use strict&#39;;
    this.friends.forEach(function(friend) {
      // &#39;this&#39; is undefined here
      console.log(this.name + &#39; says hi to &#39;+ friend);
    });
  }
}
Copier après la connexion

Appeler sayHiToFriends générera une erreur :

jane.sayHiToFriends()
Copier après la connexion

TypeError: Cannot read property &#39;name&#39; of undefined
Copier après la connexion
Copier après la connexion

Solution 1 : Enregistrez ceci dans une autre variable

var jane = {
  name : &#39;Jane&#39;,
  friends: [&#39;Tarzan&#39;, &#39;Cheeta&#39;],
  sayHiToFriends: function(){
    &#39;use strict&#39;;
    var that = this;
    this.friends.forEach(function(friend) {
      console.log(that.name + &#39; says hi to &#39;+ friend);
    });
  }
}
Copier après la connexion

Solution 2 : En utilisant le deuxième paramètre de forEach, il peut attribuer une valeur à ce

var jane = {
  name : &#39;Jane&#39;,
  friends: [&#39;Tarzan&#39;, &#39;Cheeta&#39;],
  sayHiToFriends: function(){
    &#39;use strict&#39;;
    this.friends.forEach(function(friend) {
      console.log(this.name + &#39; says hi to &#39;+ friend);
    }, this);
  }
}
Copier après la connexion

Le ci-dessus, je l'ai compilé pour tout le monde, j'espère qu'il sera utile à tout le monde à l'avenir.

Articles connexes :

Sept façons de créer des objets en JavaScript (résumé, à lire absolument)

Implémentation de Javascript dans Fonction objet Java Map (réponse détaillée, code joint)

Constructeur JavaScript et nouvel opérateur (important, à lire)

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