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;
}

同じファイルで、この行を実行すると別の関数で: 「return」行がある場合とない場合で試したときにvar server = new server();エラーが発生します。どちらも機能しません。Result of expression 'server' is not a constructor.
私は何が間違っているのですか?

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 に答える