1
這大概是有經驗的網頁開發者一個簡單的問題... (我又開始了JavaScript的話)我寫了這個類:結果表達式[未定義]的「this.myMethod」不是一個函數
var FeedParser = function(url){
this._url = url;
}
FeedParser.prototype.myMethod = function(doc){
var elem = doc.getElementById('something');
//do something...
}
FeedParser.prototype.parse = function(){
var xmlRequest = new XMLHttpRequest();
xmlRequest.overrideMimeType("text/xml");
xmlRequest.open("GET", this._url, true);
xmlRequest.onreadystatechange = function() {
if (xmlRequest.readyState == 4) {
console.log("readyState");
this.myMethod(xmlRequest.responseXML); //ERROR HERE!
}
};
xmlRequest.send(null);
}
但是當我做
var parser = new FeedParser("http://...");
parser.parse();
我得到
Result of expression 'this.myMethod' [undefined] is not a function.
我做錯了嗎?我GOOGLE了它,但我找不到與我的案例有關的任何東西
Or parser.myMethod(); .. – Chris 2011-04-11 09:19:55
@Chris - NO !!!!!!!!!!否否否否否!!!!! (我可以多說幾次嗎?)'parser'是FeedParser的一個實例。不要在類函數中使用實例變量名稱。 – 2011-04-11 09:21:13
@Chris:只有當你只有'class'的一個實例,並且你總是必須分配一個實例給一個名爲'parser'的變量時,這纔會起作用......不是很方便。 – 2011-04-11 09:21:46