比如说
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的时候再执行一遍