我正在尝试构建一个可重复使用的 Database
具有原型(prototype)方法的类,用于将项目添加到类的 list
数组属性:
var Database = function() {
this.list = [];
}
Database.prototype = {
getBooks: function () {
$.get("//some.url/books")
.success(function(res) {
_.each(res,function(book) {
this.list.push({
name: book.name,
url: book.url,
type: "book"
})
})
});
}
}
但是,目前我收到一条警告,说我无法推送到未定义的属性 list
,我只能假设我实际上不是 .push
任何 Database
类实例属性,而不是原型(prototype)属性。
那么,问题又来了:如何使用原型(prototype)方法来更改实例的属性?
最佳答案
您可以将 this
的引用存储在变量中,如下所示
Database.prototype = {
getBooks: function () {
var _this = this;
$.get("//some.url/books")
.success(function(res) {
_.each(res,function(book) {
_this.list.push({
name: book.name,
url: book.url,
type: "book"
})
})
});
}
}
关于javascript - 从原型(prototype)方法更改实例属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28237641/