0

私はこのようにインターフェースを実行します。m1 は elementById を取得し、onclick 属性を関数名に設定します。

「オブジェクトをインスタンス化」したいので、パブリック静的メソッドを作成します

 ControlSignIn.interface

次に、次のようにオブジェクトを作成して呼び出します。

new ControlSignIn().invoke();

これはこれを行うためのベストプラクティスの方法ですか?

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();
};
4

1 に答える 1

0

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

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

ControlSignInの新しいインスタンスを作成してから、そのメソッドを呼び出す理由がわかりません。また、invokeの場合と同じようにプロトタイプに割り当てます。正直に言うと、なぜこの方法が必要なのかわかりません。

正直なところ、私はあなたが何をしようとしているのか微妙な考えを持っていますが(それはある種のフォーム検証ですよね?)、それはすべて非常に複雑で、どこから始めればよいのかさえわかりません。

于 2012-04-10T20:59:43.817 に答える