1

たとえば、関数にコードを追加せずに、関数が呼び出されたときにコードを起動する方法があるかどうか疑問に思っています。

function doSomething(){
    //Do something
}

//Code to call when doSomething is called
4

4 に答える 4

0

次のようなものはどうですか:

function doSomething(){
     doSomething.called = true;
}

//call?
doSomething();

if(doSomething.called) {
   //Code to call when doSomething is called
}
于 2013-11-04T18:32:31.753 に答える
0

元の関数を変更したくないとおっしゃいましたが、コールバックを追加することを検討してください。次に、関数内のさまざまな結果 (onSucess や onError など) に基づいてコードを実行できます。

function doSomething(onSuccess, onError){
    try {
        throw "this is an error";
        if(onSuccess) {
            onSuccess();
        }
    } catch(err) {
        if(onError) {
            onError(err);
        }
    }
}

次に、 を呼び出すときにdoSomething、インライン関数で実行したいことを指定できます。

doSomething(function() {
    console.log("doSomething() success");
}, function(err) {
    console.log("doSomething() error: " + err);
});
于 2013-11-04T18:37:08.270 に答える