Javascript中函数执行顺序问题
a.onclick=show;functionshow(){}我知道,当a点击事件发生后,执行show函数,如果这样写b.onclick=hide();functionh...
a.onclick = show;
function show(){
}
我知道,当a点击事件发生后,执行show函数,如果这样写
b.onclick = hide();
function hide(){
}
b点击事件还未发生,hide函数就已经执行。
***************************************************
如果写成匿名函数
a.onclick = function(){
}
或者写成
b.onclick = function hide(){
}
会是怎样的?点击事件和函数执行的先后顺序如何? 展开
function show(){
}
我知道,当a点击事件发生后,执行show函数,如果这样写
b.onclick = hide();
function hide(){
}
b点击事件还未发生,hide函数就已经执行。
***************************************************
如果写成匿名函数
a.onclick = function(){
}
或者写成
b.onclick = function hide(){
}
会是怎样的?点击事件和函数执行的先后顺序如何? 展开
2个回答
展开全部
这个问题的关键在于hide()中的括号,跟函数的执行顺序是没有关系的!函数带上括号的话,表示立即执行这个函数,然后把运行结果赋值给事件;而不带括号的话,则是把函数作为对象赋值给事件。很显然,前者是错误的,后者才是正确的。
使用匿名函数的话,跟用函数名赋值是一样的(匿名函数也是函数啊)。而如果在匿名函数的后面加个括号,比如:
a.onclick = function(){
}()
也表示立即执行这个匿名函数,然后把执行结果赋值给a.onclick,这当然也是错误的。
所以说,你这个问题跟函数的执行顺序是没有半毛钱关系的!
使用匿名函数的话,跟用函数名赋值是一样的(匿名函数也是函数啊)。而如果在匿名函数的后面加个括号,比如:
a.onclick = function(){
}()
也表示立即执行这个匿名函数,然后把执行结果赋值给a.onclick,这当然也是错误的。
所以说,你这个问题跟函数的执行顺序是没有半毛钱关系的!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询