1

Googleと投稿による助けがなかった後、これは私の推測です:

var MC = {};
MC.o_p = function ( type ) {
    return {
        model  :  type,
        result :  'continue',
        page   :  {},
        args   :  {},
        server :  {},
        hash   :  localStorage.hash
    }
};

私はこのように呼んでいます

var obj1 = MC.o_p( 'MUserTry' );

ここで、オブジェクト o_p は MC に「スコープ」されています。上記の呼び出しで複数のインスタンスを作成できます。文字列 MUserTry が変数の型として渡され、オブジェクト プロパティ モデルに設定されます。

これは機能しますか?今は試行錯誤の休憩中ですが、必要なのは、複数のインスタンスを持つ特定の形式のオブジェクト リテラルを作成できるようにすることです。

関連している

ローカル スコープからグローバルなインスタンス ベースのオブジェクトを作成する方法は?

4

1 に答える 1

1

結果のオブジェクトをスコープすることはできません。o_pプロパティはオブジェクトのメンバーですが、関数によって返されるオブジェクトはそうではありません。

オブジェクト リテラルは、オブジェクトを作成するために使用される単なる{ ... }構文であるため、オブジェクト リテラルではなく、オブジェクトを作成する必要があります。(オブジェクト リテラルの作成は、オブジェクト リテラルのコードを文字列に入れ、その文字列を実行することによって行われます。)

コンストラクター関数を誤用していますが、機能します。オブジェクトが作成され、関数が呼び出されて初期化されます。その後、オブジェクトは破棄され、関数が返すオブジェクトに置き換えられます。

キーワードを削除してnew、通常の関数呼び出しを行うと、オブジェクトが返されます。

于 2012-07-30T23:03:22.683 に答える