我有以下的JavaScript對象:未定義的函數調用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);
}
};
現在,當我創建一個新的對象UND嘗試像這樣調用「渲染」功能
function renderPlaylist() {
var playlist = new Playlist(function(err, obj) {
obj.render();
});
}
renderPlaylist();
我得到'undefined不是函數」。它似乎不知道我在原型中聲明的渲染函數。我在這裏錯過了什麼?感謝幫助。
'回調({},這一點);''的是this'不你怎麼看。請參閱[JavaScript「this」關鍵字](http://stackoverflow.com/questions/3127429/javascript-this-keyword),[MDN'this'文檔](https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference/Operators/this)和[JavaScript封閉如何工作?](http://stackoverflow.com/questions/111102/how-do-javascript-closures-work) – Volune 2014-09-06 12:30:59
謝謝,你是完全正確。我改變了我的構造函數。 – Hinrich 2014-09-06 12:34:20