当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的函数体。