1

アプリの名前空間を構築していますが、次のようになります。

var app = {};
app.utils = {
    Expiration: function(){ // contructor
    ... // some code
    },
    init: (function(){
         app.utils.Expiration.prototype = function(){....}
      ())
};

しかし、エラーが発生します: TypeError: Cannot read property 'Expiration' of undefined、実際には utils がまだ定義されているため、app のスコープ外でプロトタイプを定義できることはわかっています。私の質問は、app または app.utils 内で定義できますか関数を実行するか、その他の手段で、ありがとう。

4

1 に答える 1

5

static 宣言で独自の変数名を参照することはできません。自己実行関数により、静的宣言時に評価および実行されます。したがってapp.utils、まだ定義されていません。

代替手段があります。ここに1つあります:

var app = {};
app.utils = {};

app.utils.Expiration = function(){ // contructor
    ... // some code
    };

app.utils.Expiration.prototype = ...

これらの連続する各ステートメントは別のレベルのプロパティを追加するため、これらのステートメントは、前の要素が配置されるように、この順序で次々に実行される必要があります。

于 2012-04-29T02:09:50.273 に答える