当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的函数体。
本文介绍了JavaScript中如何将函数作为参数传递,特别是当需要多次传递同一函数但仅在特定时机执行的情况。通过字符串形式传递函数名称,并利用全局作用域获取函数实例。
1439

被折叠的 条评论
为什么被折叠?



