-1
votes

Console renvoyée non fonction lorsque la fonction est définie

Je veux Backagain Pour être exécuté 2 secondes après avoir cliqué sur le bouton Stopcrash Mais la console renvoie Erreur: Company TypeError: Ceci.backagain n'est pas une fonction

aucune idée ? xxx xxx


0 commentaires

4 Réponses :


1
votes

Vous devez utiliser une fonction de flèche afin d'accéder à ce contexte: xxx


0 commentaires

1
votes

C'est tout parce que vous perdez ce lorsque vous définissez un délai d'attente, car fonction () {} ne sauvegarde pas le Ceci Contexte, mais comme les fonctions arrow, vérifiez le différence entre eux xxx


0 commentaires

1
votes

Vous devez lier ceci . Fonction de flèche le fait pour vous. Si vous utilisez IE 11 et que vous n'avez pas de fonctions de flèche, vous pouvez lier de cette manière: xxx

dans votre cas, vous pouvez lier et exécuter avec appel ou appliquer exécuter: xxx


0 commentaires

1
votes

Ce code> est perdu lorsque le rappel est appelé, mais vous pouvez par exemple utiliser une variable locale dans sa fermeture (le concept habituel d'accéder à des variables à partir de blocs "externes" entourant un morceau de code étendu avec Le "Twist" que les variables sont accessibles même après que le code immédiat qui les contenait a fini de fonctionner), ce qui n'est pas perdu:

cashOut(){
  clearTimeout(this.tessst);
  this.money = Number(this.money) + Number(this.winning);
  var diz = this;             // <--- store
  setTimeout(function(){
    diz.backAgain();          // <--- use
  },2000)
}}


0 commentaires