我有以下javascript对象:
var Playlist = function(callback) {
$.ajax({
url:'/playlist'
})
.done(function(data) {
this.html = data;
callback({},this);
})
.fail(function(err) {
callback(err,{});
});
};
对于这个对象,我声明了一个原型方法:
Playlist.prototype = {
render : function() {
$('#main').html(this.html);
}
};
现在,当我创建一个新对象时,尝试调用'渲染'像这样的功能
function renderPlaylist() {
var playlist = new Playlist(function(err, obj) {
obj.render();
});
}
renderPlaylist();
我得到一个未定义的不是函数'。它似乎不知道我在原型中声明的渲染函数。我在这里失踪了什么?谢谢你的帮助。
答案 0 :(得分:1)
在Volune的帮助下,我将构造函数更改为
var Playlist = function(callback) {
var playlist = this;
$.ajax({
url:'/mpdplaylist'
})
.done(function(data) {
playlist.html = data;
callback(null,playlist);
})
.fail(function(err) {
callback(err,{});
});
};
现在可以了。谢谢!!
修改强> 正如Volune指出的那样,我在'done'回调函数
中用空值替换了空对象