Sorry, wenn dies beantwortet wurde, aber ich konnte eine Suche nach ihr nicht auftauchen ... eine schwierige Sache zu suchen, denke ich!Scoping "dies" in Javascript (und jQuery.extend)
Sagen, ich habe diese:
var MyPrototype = function() { this.init(); }
$.extend(MyPrototype.prototype, {
a: 5,
init: function() {
var thing = new SomeOtherClass();
thing.meth = this.meth;
// thing.meth() is called somewhere within thing;
},
meth: function() {
alert(this.a);
}
}
Grundsätzlich ist mit einer anderen Klasse zu tun habe, die ihre eigenen Methoden, wie Rückrufe verwendet, z.B. Es wird erwartet, dass ich sie mit meiner eigenen Funktionalität überschreibe. Aber ich muss den richtigen Umfang von this
dabei behalten (das einzige, was ich interessiere von SomeOtherClass
ist, was an den Rückruf weitergegeben wird; nichts in dem Staat).
Wie Sie sich vorstellen können, funktioniert das nicht, weil thing
keine a
Eigenschaft hat! Ich bin nicht vertraut genug mit den Feinheiten von Javascript Scoping zu wissen, wie man this
Bezug auf was ich will, obwohl!
Bitte sehen: http://stackoverflow.com/questions/520019/controlling-the-value-of- this-in-a-jquery-event ... und auch: http://stackoverflow.com/questions/1043556/how-cani-i-keep-the-context-of-this-in-jquery ... and wirklich, die meisten Fragen in: http://StackOverflow.com/Questions/Tagged/this+javascript (das ist ein extrem häufiger Punkt der Verwirrung) – Shog9