2012-04-02 25 views
5

jQueryでこれを単純な(そしておそらくばかげた)ものにする方法が不思議でした。関数をパラメータとして渡してjquery関数で実行します。

私はこのような機能を持っている:私はこのような何かを書く場合、それは動作しません、まあ

generalFunction(par1, par2, par3) { 
    do other stuff; 
    execute function called in par3;  
} 

c=setSomething(); 
generalFunction(a, b, c); 

function setSomething() { 
    make some stuff; 
} 

と、このような、別の機能を

関数を別の関数のパラメータとして呼び出して内部で実行する方法はありますか?

私は十分にはっきりしていたと思います。

ご協力いただければ幸いです。

ご連絡いただきありがとうございます。

答えて

11

括弧を省略すると、関数を "generalFunction"関数の中で関数として呼び出すことができます。ここで

setSomething(){ 
    // do other stuff 
} 

generalFunction(par1, par2, par3) { 
    // do stuff... 

    // you can call the argument as if it where a function (because it is !) 
    par3(); 
} 

generalFunction(a, b, setSomething); 
+2

+1 。同じことが 'c'を使用する質問のコードに適用されることに注意してください。つまり、' c = setSomething; generalFunction(a、b、c); '(ただし、あなたが示したように、それを動作させるために' 'c''を必要としません)。 – nnnnnn

+0

うん!かっこ!クリーンでシンプル! :D助けてくれてありがとう!あなたが望むなら、私の質問に投票することができます。 – bobighorus

0

は、コールバックとして渡される関数にパラメータを渡したい人のための別の例である:ここでは

$(document).ready(function() { 
    main(); 
}); 

function main() { 
    alert('This is the main function'); 
    firstCallBack(1, 2, 3, secondCallBack); 
}; 

function firstCallBack(first, second, third, fourth) { 
    alert('1st call back.'); 
    var dataToPass = first + ' | ' + second; 
    fourth(dataToPass); 
}; 

function secondCallBack(data) { 
    alert('2nd call back - Here is the data: ' + data) 
}; 

はJSFiddleリンクです:https://fiddle.jshell.net/8npxzycm/

関連する問題