-1

JavaScript でオブジェクトを保存/再利用するにはどうすればよいですか?

if (typeof window.Test == "undefined") window.Test = {};
if (typeof Test == "undefined") Test = {};

Test.Object1 = function() {
    var obj =  {

        init: function(msg) {
            console.log(msg);
        },

        EOF: null
    };

    return obj;
}();

Test.Test = function() {
    var obj = {

        init: function() {
            var obj1 = Test.Object1.init('Object 1 initialized');
            console.log(obj1);
        },

        EOF: null
    };

    return obj;
}();

Test.Test.init();

console.log(obj1)戻り値undefined

var obj1 = new Test.Object1();生産するTypeError: Test.Object1 is not a constructor

4

1 に答える 1

1

initを呼び出しconsole.logて返すだけundefinedです。init(再び、undefined)の結果を格納しobj1、コンソールはその値を忠実に報告しています。

おそらくあなたはやりたい:

var obj1 = Test.Object1;

最初の匿名関数内Test.Object1の値を持っているためです。obj

または、次のことをしたいかもしれません:

Test.Object1 = function() {
    var obj =  {

        init: function(msg) {
            console.log(msg);
            return this;
        },
 ...

そのためinit、非undefined値が返されます。

于 2013-05-07T16:30:02.890 に答える