如果改成return obj.addEventListener(event,fn,false);
貌似也可以运行。
如果你把它return出去了,我在外面用个变量接收一下,那么我就可以以此来修改obj的属性,也就是说你obj就被暴露出来了,如果你不return出来,那么,因为你使用了var声明,它就是一个局部变量,外部访问不到。
请仔细阅读js闭包相关知识
加 return
的话, 要看你加在哪里了.
如果按你说的是加在 return obj.addEventListener(event,fn,false);
这里的话,
那么没有任何区别, 因为 addEventListener
这个方法是没有返回值的, 也就是 undefined
.
那么你主动返回 undefined
与不使用 return
语句, 你这个方法(addEvent
)的返回值 还是undefined
,
所以说 没有任何区别.
DOM-Level-3 Events-EventTarget-addEventListener
如果是加在 return obj.attachEvent("on" + event, fn);
这里的话, 那么返回的是一个 boolean
值.
与之前不加的区别就是 返回值不同, 不加的话返回的是 undefined
, 而加了的话返回的是 true/false
.
attachEvent
addEventListener
虽然微软的帮助文档上面写着
Return value Type: HRESULT If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
但实测下来是没有返回值的(即undefined
).