j s初学者 对函数的表示还是有点不明白,大家帮我看看下面这些代码的区别

比如说

1.

  function hehe(){
                                                statements}

当一个事件发生的时候我想调用它
为什么写成 event = hehe 而不是写成event = hehe()
2.firstfunction是个函数
window.onload = firstFunction
和window.onload = function(){firstFunction()}有区别吗?能写成
window.onload = firstFunction()吗

onclick="hehe();"这种形式等价于
el.onclick=function(){hehe()}

所以直接el.onclick=需要是一个函数句柄,dom中添加js代码浏览器会自动生成一个匿名函数,函数体为属性值

el.onclick=hehe()这样试讲hehe函数执行后将返回值作为onclick的处理函数句柄了,得分清楚dom和js绑定事件的区别

对于第一个问题,其实比如onclick="hehe"还有onclick="hehe();"都是可以的
如果hehe方法是包含参数的,比如hehe(obj) 那onclick="hehe('张三')" 这样也是可以的但这个是写道标签里,比如
在js代码里面 event=hehe 代表绑定hehe给event,如果event = hehe();代表绑定hehe给event,但先执行hehe一遍,()意思就是定义event的时候,先执行一遍方法

第二个问题这两个在执行的时候没有区别,但在使用的时候有区别

window.onload = firstFunction

意思是在onload的时候,触发firstFunction方法
window.onload = function(){firstFunction()}的意思是
window.onload 触发有个没有名字的方法,这个没名字的方法里面调用了firstFunction;
window.onload = firstFunction()是可以的,但是在初始化的时候会先执行一遍firstFunction,然后onload的时候再执行一遍