function doSomething(fn) {
fn("Hello");
}
doSomething(alert);
运行结果是弹出 Hello
这里的fn("Hello")
是什么意思,还有doSomething(alert)
,是将alter函数作为参数传递吧,但我不明白是怎么一个原理。还有就是如果使用alert(doSomething)
的话,就会输出
function doSomething(fn) {
fn("Hello");
}
麻烦解释得详细一些,谢谢
首先,js中函数也是对象,可以作为参数传递,这是非常重要的一点特性,没了这个,js就报废了.
dosomething(alert)
是将alert这个函数,作为一个参数传递给dosometing
,到了dosth
内部,alert
被赋值给fn
,到了这里,fn===alert
,他们是同一个东西,所以fn("hello")
和alert
的行为是一样的.alert可以认为是这个行为的另一种展示方式: