2

试图在 Javascript 中创建一个对象(对于 Appcelerator/Titanium)。“对象”定义如下:

function server () {
    this.cacheimages = 0;
    this.login = "";
    this.name = "";
    this.root = "";
    this.signup = "";
    this.useimages = 0;
    this.userexists = "";
    this.isdefault = 0;

    return this;
}

在同一个文件中,当我运行此行时在另一个函数中:var server = new server();我得到错误Result of expression 'server' is not a constructor.
我已经尝试过使用和不使用“return”行,都不起作用。我究竟做错了什么?

4

2 回答 2

3

如果更改变量的名称会发生​​什么?

var server2 = new server();
于 2011-01-09T15:33:03.080 回答
2

函数是 javascript 中的“一等公民”,这意味着它们是变量(或者更好的是:对象,就像 javascript 中的一切都是对象)。所以你的构造函数也可以写成

var server = function() {
 //[...]
}

现在,如果你声明一个名为 的新变量server,它会覆盖构造函数,它也是一个变量。

将构造函数的名称大写是常见的做法。如果你使用function Server() { ... }, var server = new Server(顺便说一下,不需要括号)你很好。

于 2011-01-09T15:48:19.763 回答