关于不加括号的理解
来源:2-8 DOM0级事件
楚楚提
2019-07-15 12:52:56
btn.onclick = fun(){...}
因为btn是对象,他有一个属性onclick,这个属性可以接受一个引用值,
因为JavaScript和Java有个区别就是,他的函数也会有一个引用值,所以绑定事件的本质,实际上是将要调用的函数引用值赋值给相应的属性(比如onclick,onmouseover),如果加了括号就是将这个函数的返回值赋值给onclick,所以就不对了.
由此我可以猜想到
var fun = function(){}
和 function fun(){} 一样,都是将函数的引用值赋值给一个变量 fun,通过这个变量可以调用函数,
语法就是fun(),
这里和Java不一样,Java中函数名不是变量,但是有点类似于c语言中的函数指针,
是这样吗?
1回答
同学你好!
理解是正确的。还有一点就是btn.onclick = fun(){...}为什么不需要调用。因为在点击事件触发之后就会执行这个匿名函数
如果帮助到了你 欢迎采纳 祝学习愉快~
相似问题