L'utilisation de la fonction _C sur les fonctions membres de la classe personnalisée n'a pas obtenu le bon this

Auteur:éclaircissement, Créé: 2019-08-11 14:47:22, mis à jour: 2019-08-11 14:50:47

Essayez d'exécuter le code suivant:

function MyClass()
{
    this.m_name = "my name";
}

MyClass.prototype.printMyName = function()
{
    Log(this.m_name);
    return true;
}

function main() {
    var myobj = new MyClass();
    myobj.printMyName();
    _C(myobj.printMyName);
}

Les résultats sont imprimés:

  • Je m'appelle
  • Nul

Lorsque _C ((myobj.printMyName) est appelé, this dans la fonction ne pointe pas vers l'objet myobj. Comment résoudre ce problème?


Plus de

Le petit rêveJe ne sais pas. fonction MyClass (() { le nombre d'heures de travail Je ne peux pas vous aider. Je suis désolée. Le code est le même que celui de l'image. Log ((self.m_name) retourner vrai Je ne sais pas. Je suis désolée. retourner soi-même Je ne sais pas. fonction principale Var myobj = MyClass (en anglais seulement) myobj.printMyName (en) Je ne sais pas si je peux le faire. Je ne sais pas. Je ne sais pas.

Le petit rêveLa raison en est que myobj.printMyName a été transmis à _C, ce pointeur a été modifié.

éclaircissementMerci!