var a = {
fun: function(e) {
alert(e);
alert(this);
}
}
window.addEventListener('load', a.fun, false); //chrome下弹出[object Event] 和 [object DOMwindow]window.addEventListener('load', a.fun(), false); //chrome下弹出undefined 和 [object object]是不是第一种属于函数调用模式,第二种属于方法调用模式
为什么会有这种差别呢?
fun: function(e) {
alert(e);
alert(this);
}
}
window.addEventListener('load', a.fun, false); //chrome下弹出[object Event] 和 [object DOMwindow]window.addEventListener('load', a.fun(), false); //chrome下弹出undefined 和 [object object]是不是第一种属于函数调用模式,第二种属于方法调用模式
为什么会有这种差别呢?
解决方案 »
- 两个<script>标签在同一index.aspx里冲突,哪位高手帮忙解决一下,非常感谢!
- jquery 的 each , click , 中 $(this) 是指什么?在线等 , 希望高手解答 !!
- 关于Jquery中的 $.fn的作用
- 文本框背景色慢慢淡出
- 这个正则比配什么啊 ??/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/
- 关于下拉列表
- 各位路过得大哥,请帮小弟解决一个问题。。。。有分贡上!
- 请懂的人帮我把它转成JS,我不会转
- 问题:"Msxml2.Xmlhttp”的ActiveX对象访问后台页面时,提示"没有权限"的问题
- 求救啊 大神们,点击button 删除按钮没任何反应,传不到servlet去
- javascript Question
- 添加成功后的提示信息
你的这句话window.addEventListener('load', a.fun, false); 表示页面加载完毕后load事件会调用a.fun函数,该事件是由window对象调用的,alert(this)就是打印出window对象,alert(e)就是event对象,
但是window.addEventListener('load', a.fun(), false);这句话第二个参数传入的是a.fun()函数调用(这时已经调用了该函数,所以会打印语句)完毕后的返回值,由于在声明这个函数时没有返回值,所以第二个参数就是undenfined,这句话最后就相当于window.addEventListener('load',undenfined,false),页面加载完后根本不会调用任何函数,你把这句话直接写成a.fun();可以看到打印的结果是一样的,由于该函数不是通过事件触发的,所以e参数自然就为undenfiend,this对象就指向a对象了。
a.fun() 表示函数调用完成后的返回值