首页 > 这段代码加不加return的区别

这段代码加不加return的区别

如果改成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).

【热门文章】
【热门文章】