J'explore un modèle dans lequel vous pouvez enregistrer une référence globale à l'instance en cours pour une utilisation simple dans des fonctions anonymes où le mot clé this
est hors contexte. Considérez ceci:Instance globale dans javascript prototypique
var instance;
var a = function(id) {
instance = this;
this.id = id;
};
a.prototype.get = function() {
return (function() {
return instance.id;
})();
};
var x = new a('x');
var y = new a('y');
console.log(x.get());
console.log(y.get());
Cette évidence ne fonctionne pas depuis instance est définie dans le constructeur, à chaque fois que l'on appelle .get()
, instance
fera référence le dernier objet construit. Donc, il donne «y» les deux fois.
Cependant, je cherche un moyen de saisir l'instance dans une méthode prototype sans utiliser le mot-clé this
, pour rendre le code plus lisible. Singletons n'est pas une option ici, j'ai besoin de l'héritage prototypique.
oui, exactement. Je cherche un moyen d'éviter d'enregistrer des instances locales pour chaque méthode de prototype lors de l'utilisation de fonctions anonymes. – David
Je suppose que c'est un "non", mais merci de fournir des modèles pour mettre le contexte dans des fonctions anonymes. – David