关于不加括号的理解

来源: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回答

好帮手慕码

2019-07-15

同学你好!

理解是正确的。还有一点就是btn.onclick = fun(){...}为什么不需要调用。因为在点击事件触发之后就会执行这个匿名函数

如果帮助到了你 欢迎采纳 祝学习愉快~

0

0 学习 · 40143 问题

查看课程