jsメソッドにおけるパラメータは関数の処理である

611 ワード

jsのメソッドで伝達されるパラメータが関数である場合、次のように伝達できます.
   
function test(c){
    console.log(c*c)
} 
function exec(a, b){
    a(b)
} 

 
次の文を実行します.
exec(test,9)       81,   9*9

exec(test,9)を呼び出す過程でtestはメソッド名,typeOf(test)=functionである.
 
しかし、これは、一度伝達されたtestがtestのメソッド体に戻るため、test伝達にのみ適用される.
 
testが何度も渡されてから実行される場合、直接伝達方法体は合理的ではありません.
exec('test',9)

メソッドの文字列を直接渡すと、何度も渡されても文字列になり、test関数を実行するときにwindow['test']メソッドを実行すればtestの関数体が得られます.