2012-01-06 20 views
1

、私は(bindClickEventsを呼び出すことができるようにしたい)ので、のような:JavaScriptのオブジェクト合成構文

App.Utils.Modal.bindClickEvents(); 

しかし、私はこれを行うために必要な構文を理解していません。

現在のコード:ところで

var App = {}; 
App.Modal = {}; 
Modal.bindClickEvents = function() {/* ... */}; 

var App = { 
    Modal : { 
    bindClickEvents : function() {/* ... */} 
    } 
} 

か、手順を分離するためにそれを分割したい場合:

var App = new Object; 

App.Modal = { 
    bindClickEvents: function() { 
    return $('a.alert-modal').click(function(e) { 
     return console.log('Alert Callback'); 
    }); 
    } 
}; 

$(document).ready(function() { 
    return App.Modal.bindClickEvents(); 
}); 
+0

'new object'の代わりに' {} 'を常に使用してください –

+0

なぜ私は尋ねても構わないのですか? – keruilin

+0

この質問を参照してください:http://stackoverflow.com/questions/251402/create-an-empty-object-in-javascript-with-or-new-object –

答えて

3

あなたは一度にそれを行うことができます元の質問のタイトルを参照すると、これはオブジェクトの連鎖ではありません。これはオブジェクトの構成です。オブジェクトの連鎖は、単一のステートメントでオブジェクトのメソッドを複数回呼び出すことができます。

2

これはあなたがやろうとしていることですか?

var App = {}; 

App.Utils = {}; 

App.Utils.Modal = { 
    bindClickEvents: function() { 
    return $('a.alert-modal').click(function(e) { 
     return console.log('Alert Callback'); 
    }); 
    } 
}; 

$(document).ready(function() { 
    return App.Utils.Modal.bindClickEvents(); 
}); 
+0

OPは実際にはUtilsオブジェクトを望んでいないと思いますそこに:-) –

+2

私は私の心の読書@ _ @ –

0

Objectコンストラクタのオブジェクトリテラル構文を使用することをお勧めします。

var App = {}; 
App.Utils = {}; 
App.Utils.Modal = {}; 
App.Utils.Modal.bindClickEvents = function() { 
    return $('a.alert-modal').click(function(e) { 
     return console.log('Alert Callback'); 
    }); 
}; 
:いくつかの著者は、これまでのアンチパターン

後者を呼び出すために、ここでApp.Utils.Modal.bindClickEvents();

var App = { 
     Utils: { 
      Modal: { 
       bindClickEvents: function() { 
        return $('a.alert-modal').click(function(e) { 
         return console.log('Alert Callback'); 
        }); 
       } 
      } 
     } 
}; 

それとも、一度にまとめて一歩を、それをつなぎすることができますを設定する最も簡単な方法です行きます