$。Comment = function(){ this.alertme =“警报!”; }
$.Comment.prototype.send = function() {
var self = this;
$.post(
self.url,
{
'somedata' : self.somedata
},
function(data, self) {
self.callback(data);
}
);
}
$.Comment.prototype.callback = function(data) {
alert(this.alertme);
}
当我调用$ .Comment.send()时,调试器对我说self.callback(data) is not a function
我做错了什么?
谢谢
答案 0 :(得分:2)
您不希望将self
声明为成功函数的参数。如果删除该声明,您将获取本地变量,这是您想要的。 E.g:
$.Comment = function() {
this.alertme = "Alert!";
}
$.Comment.prototype.send = function() {
var self = this;
$.post(
self.url,
{
'somedata' : self.somedata
},
function(data) { // <== removed `self` argument
self.callback(data); // <== now sees `self` local var
}
);
}
$.Comment.prototype.callback = function(data) {
alert(this.alertme);
}
答案 1 :(得分:0)
您不应将 self 声明为参数:
function(data) {
self.callback(data);
}
那样 self 将是一个闭包并引用函数中的正确对象。