首先:我不知道如何調用everyting,因爲我對於編寫javascript的OOP方式比較陌生,所以我會盡力解釋爲什麼儘可能好。我的問題是我想訪問一個對象內部的屬性(所以我可以使用this
關鍵字。只要我在對象的範圍內,這可以正常工作。當我超出範圍時,我會喜歡,而我不能使用this
-keyword再訪問這些屬性
我的代碼:在jQuery函數和其他方法中使用父對象的屬性
var Octa = Octa || function() {
this._initialize();
};
Octa.prototype = {
string: 'Foo',
_initialize: function() {
console.log(this.string); //Output: "Foo"
this.othermethod();
}
}
var Octa = new Octa();
但是,當我有一個Octa
方法中的一個方法,所以範圍之外,我無法使用this
瞭解Octa
的房源,我無法抵達Octa
的房源。
例如:
othermethod: function() {
$.ajax({
url: this.globalUrl + 'content/language/lang.' + l + '.php',
data: {
ajax: true
},
dataType: 'json',
success: function (response) {
Octa.lang = response;
}
});
console.log(JSON.stringify(this.lang)); //Output: null, which means Octa.lang wasn't reachable in the ajax success event (the ajax request was successful).
}
有沒有達到Octa
其他物體內範圍的方法嗎?或者在jQuery回調中,因爲同樣的問題發生在那裏。
我希望我的問題是可以理解的,如果沒有,我會盡量給予更多的澄清。
可能的重複[如何返回來自異步調用的響應?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-調用) – Grundy
$ .ajax只是一個例子。無論我使用什麼,當我走出Octa的界限時,我都無法達到它。但我會讀其他帖子。謝謝! – Galago
_ $。ajax僅僅是一個例子_我建議你刪除'$ .ajax',因爲在第一眼看問題適合作爲愚蠢的關閉。 – Satpal