我有一个包装 Node.js 的 mongodb 客户端的类。当我调用 findUsers
时,下面的类我发现 this.collection
未定义。
如何从原型(prototype)访问 this.collection
?
谢谢!
类(class):
var Users;
Users = (function () {
function Users(db) {
db.collection('users', function (err, collection) {
this.collection = collection;
});
}
Users.prototype.findUsers = function (callback) {
this.collection.find({}, function (err, results) {
});
}
return Users;
})();
用法:
//db holds the db object already created
var user = new Users(db);
user.findUsers();
最佳答案
你在原型(prototype)方法中做得对,你的错误在db.collection()
的回调函数中。
var Users = (function () {
function Users(db) {
var that = this; // create a reference to "this" object
db.collection('users', function (err, collection) {
that.collection = collection; // and use that
});
}
Users.prototype.findUsers = function (callback) {
this.collection.find({}, function (err, results) {
});
}
return Users;
})();
关于javascript - 从原型(prototype)访问对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10321641/