这样写参数程序无法运行出来
oDiv.onmouseover=startMove(0);
而这样写为什么就可以?
oDiv.onmouseover=function (){
startMove(0);
}
你得搞清楚类型
这是一个函数
startMove;
这是一个函数
function (){
startMove(0);
}
这是一个函数调用,不是一个函数,startMove函数返回什么类型,这就是什么类型
startMove(0);
再理一下这个语法
xxx.onmouseover = 函数类型, 正确
xxx.onmouseover = undefined/number/string/其他类型 , 错误
直接写的话,函数startMove()传递参数(0),这个0是无法传递的,因为事件处理函数是由系统调用的,系统调用的时候会传入一个事件对象event参数。
//定义函数
function startMove(){
}
xxx.onmouseover = startMove;//将函数赋给xxx的onmouseover事件
等价于:
//将匿名函数赋给xxx的onmouseover事件
xxx.onmouseover = function(){
}
对于函数的理解,可以浏览这个文档(JavaScript 函数调用):
https://www.runoob.com/js/js-function-invocation.html