0

はいまたはいいえを尋ねる確認ポップアップがあります。これはコードです:

Confirm({
    Title: 'Warning',
    Message: 'Are you sure?',
    Buttons: [{
        text: 'Yes',
        callback: function(){
            RRSubmitRemoveReportRequest($(this));
        },
        highlighted: true
    }, {
        text: 'No)',
        callback: null,
        type: 'no'
    }]
});

パラメータ$(this)を送信する場合は、無名関数を使用する必要があります。そうでない場合は、すぐに関数を呼び出します。誰かがこれを説明してくれますか?ありがとう

4

2 に答える 2

4

例で理解するのは簡単です:

function foo(i){
    return i*10;
}

var x = foo(1); // execute foo with 1 parameter;

var x = function(){ // creates a callback to the foo function.
    foo(1);
};

var x = foo; // pointer to foo function and then:
x(1);

結論として、コールバックは、関数の値ではなく、将来どこかで呼び出される関数である必要があります。

于 2013-01-29T16:33:51.030 に答える
2

プロパティはcallbackに設定する必要がありますfunction

もし、するなら:

callback: RRSubmitRemoveReportRequest($(this))

関数の戻り値に設定callbackしています。RRSubmitRemoveReportRequest

関数を渡す必要があります。 RRSubmitRemoveReportRequestは関数でRRSubmitRemoveReportRequest($(this))あり、は関数呼び出しであるため、実行され、その戻り値が使用されます。

あなたがするとき:

callback: function(){
    RRSubmitRemoveReportRequest($(this));
}

RRSubmitRemoveReportRequest呼び出されたときに正しく呼び出される関数を渡しています。

于 2013-01-29T16:35:56.807 に答える