2012-04-10 4 views
0

私はこのようなインタフェースを実行します。m1はelementByIdを取得し、onclick属性を関数名に設定します。ユーザークリックをバインドしてオブジェクトをインスタンス化する

new ControlSignIn().invoke(); 

このベストプラクティスの方法です:私は、「オブジェクトをインスタンス化」したいので

は、私はその後、作成し、このように私のオブジェクトが呼び出し

ControlSignIn.interface 

と呼ばれるパブリック静的メソッドを作成しますこれをする?

Min.m1('signin_button', ControlSignIn.interface); 

ブレーク:

var ControlSignIn = function() 
{ 
    var form_element = document.getElementById('signin'); 
    var response_element = document.getElementById('signin_response'); 
    var text_object = new Text(form_element); 
    var message_object = new Message(response_element); 

    this.invoke = function() 
    { 
     if(Global.validate_input_on === 1) 
     { 
      if(!text_object.checkEmpty()) 
      { 
       message_object.display('empty'); 
       return false; 
      } 
      if(!text_object.checkPattern('email')) 
      { 
       message_object.display('email'); 
       return false; 
      } 
      if(!text_object.checkPattern('pass')) 
      { 
       message_object.display('pass'); 
       return false; 
      } 
     } 
     AjaxNew.repeatUse(ajaxSerialize(form_element) + '&ajax_type=signin_control', function(server_response_text) { ajaxType(server_response_text, response_element, 'respond'); }); 
    } 
}; 

ControlSignIn.interface = function() 
{ 
    new ControlSignIn().invoke(); 
}; 
+0

これはhttp://codereview.stackexchange.comでより良い質問です。 –

+1

CodeReviewに属し、スタックオーバーフローではありません – Cilan

答えて

0

うーん。そこには多くのグローバルオブジェクトがあります。言語に関係なく、結合が大きすぎます。

ControlSignIn.interface = function() 
{ 
    new ControlSignIn().invoke(); 
}; 

ControlSignInの新しいインスタンスを作成してそのメソッドを呼び出す理由がわかりません。また、呼び出しのために行ったように、プロトタイプに割り当てます。あなたがなぜこの方法を正直にする必要があるのか​​分かりません。

正直言って、私はあなたがやろうとしていることを気づかずにいます(それは何らかの形式の検証ですよね?)。しかし、それはかなり畳み込まれています。

関連する問題