静态变量不会生效,nodeJS

时间:2013-01-21 11:11:04

标签: node.js static static-variables static-functions

我正在编写一个基于nodeJS的小型电子邮件服务器。我有一个Request对象,其中有一个静态变量存储所有用户,并且定义如下:

Request.publicMemory = new Object();
Request.publicMemory.users = new Object();

Request.prototype.getPublicMemory = function() {
    return (Request.publicMemory);
};

我在其中存储User个对象:

function User(params) {
    this.mails = new Array();
    this.sent = new Array();
    var details = new Object();
    details.username = params.username;
    details.password = params.password
    return;
}

正如您所看到的那样,还有一个返回它的静态函数。

现在,我可以添加uesrs并且实际上已经进行了更改,但是当我在Request.publicMemory.usesrs[someuser]中更改任何内容时,更改始终是函数的本地更改,并且不会在其他位置生效。这是我如何做的一个例子:

function addMail(request) { 
    var users = request.getPublicMemory().users;
    var to = request.parameters['to'];
    users[to].mails.push(mail);
}

之前我从未在nodeJS中使用静态变量,而且我对它很新,所以这可能很傻,但我仍然无法解决它。有什么想法吗?

谢谢!

0 个答案:

没有答案