javascript - 从原型(prototype)访问对象属性

标签 javascript object prototype

我有一个包装 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/

相关文章:

javascript - 如果 [] 是 [] 并且 Array.prototype 是 [] 为什么不 ([] == Array.prototype)

javascript - 检测另一个 jquery 函数对输入文本框所做的更改

php - JSON 对象作为 php 字符串

javascript - 按对象键减少/过滤对象数组

java - 我正在java中实现链表,但我的代码既没有给出任何错误,也没有产生任何输出

java - 如何在 Scala 中制作功能齐全的不可变类?

javascript - 如何通过 ng-init 或 value 标签设置 ng-model 值

javascript - 三元运算符在 JSHint 中显示错误 - 需要赋值或函数调用,但看到的是表达式

javascript - React js状态变量自动更新,无需setstate方法

javascript - TypeScript Array<T> 继承