我感到困惑的這一行爲在某些情況下,例如方式我有這樣的代碼關於這個在JavaScript
var makeRequest=function(url,callback){
var data=10;
callback(data);
};
var obj = {
someValue: 20,
loadData: function(data){
var sum = this.someValue + data;
alert(sum);
},
prepareRequest:function(){
var url="http://someurl.com";
makeRequest(url,obj.loadData);
}
};
它發出請求令s說,它得到了一些數據。問題是,當我將makeRequest
與obj.loadData
作爲參數調用時,它會給出錯誤。 有人可以解釋爲什麼會發生這種情況嗎?爲什麼當我呼叫obj.prepareRequest()
甚至是loadData
方法被攻擊到obj
對象時,它不會表現出預期的方式? 我將不勝感激任何幫助。 「這個」關鍵字確實令人困惑。
的[如何進行 「this」 關鍵字的工作?](https://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work可能的複製) –
你得到的錯誤是什麼? –
在你的函數「loadData」中,「this」不是指你的對象,而是函數本身。閱讀JavaScript中的變量範圍 – EyeOfTheHawks