Also, ich habe ein Objekt erstellt, das einen AJAX-Aufruf macht, um seine Eigenschaften während der Initialisierungsphase zu füllen. Ich stoße jedoch auf ein sehr merkwürdiges Verhalten: Ich kann drucken und sehen die Eigenschaft Werte gut innerhalb der $.ajax() Bereich, aber jede öffentliche Methode, die den Wert der Eigenschaften zurückgibt haben einen Rückgabewert von "undefined".
So sieht der JS-Code aus:
function MyFunction() {
this.myProperty;
this.init();
}
Myfunction.prototype.getPropertyValue = function () {
alert(this.myProperty); // returns 'undefined'
}
Myfunction.prototype.init = function () {
$.ajax({
type: 'get',
url: "getProperty.php",
dataType: "json",
success: function(response) {
this.myProperty = response[0].Property;
alert(this.myProperty) // returns 'Property Name'
}
});
}
Mein Denken ist, dass innerhalb der $.ajax() Bereich, "this" ist eigentlich auf etwas anderes verweisen. Also, meine Frage ist, wie stelle ich sicher, dass "this.myProperty" festgelegt ist und nicht seinen Wert verlieren, sobald wir außerhalb des AJAX-Bereichs erhalten?
Für jede Hilfe sind wir sehr dankbar.