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