2 回答
已采纳
精慕门9254224
TA贡献167条经验 获得超46个赞
第一,window.onload=two 不是调用函数,而是window的onload方法指向two ,赋值最后一次覆盖了前面的赋值,然后页面加载完成时,window对象才去调用onload 这个函数,而这个函数已指向two 函数,所以他调用的是two ;此时执行一下输出two;第二,window.onload =two ();他先调用一次one函数,然后将返回值付给window 的onload 函数,此时执行一下输出one ,无返回值意味着返回null 付给了window 的onload,然后再调用一次two 函数,将返回值付给window 的onload函数,此时执行一下输出two ;又把返回的null 赋值给window 的onload 方法,这下window 加载完毕后去调用onload函数发现是null ,便什么也没有执行!所以你说的两种写法函数的调用时机是不一样的!
橋本奈奈未
TA贡献436条经验 获得超108个赞
等号是赋值,加上括号的意思相当于执行函数然后把返回值赋给window.onload所以会弹出one、two;不加括号相当于将window.onload指向one、two函数,而后者的赋值会覆盖前者的赋值,所以实际上onload最终指向two这个函数,然后页面加载完触发load事件并执行two函数,所以弹层two
添加回答
举报
0/150
提交
取消