Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript obj.onevent=回调vs obj.addEventListener(事件,回调)_Javascript_Jquery_Events_Javascript Events_V8 - Fatal编程技术网

javascript obj.onevent=回调vs obj.addEventListener(事件,回调)

javascript obj.onevent=回调vs obj.addEventListener(事件,回调),javascript,jquery,events,javascript-events,v8,Javascript,Jquery,Events,Javascript Events,V8,有人认为这两种方法有什么区别吗?或者哪一种更好 说我们有 var x = new Worker('math.js'); 1) 绑定事件处理程序的一种方法 x.onmessage = function(ev){ //.... }; 2) 另一种方法是: x.addEventListener('message',function(){}); 我知道一个区别是,如果我们有多个事件侦听器,addEventListener将非常有用。除此之外还有其他原因吗?执行此操作的另一个原因是,您也可以删除事

有人认为这两种方法有什么区别吗?或者哪一种更好

说我们有

var x = new Worker('math.js');
1) 绑定事件处理程序的一种方法

x.onmessage =  function(ev){ //.... };
2) 另一种方法是:

x.addEventListener('message',function(){});

我知道一个区别是,如果我们有多个事件侦听器,addEventListener将非常有用。除此之外还有其他原因吗?

执行此操作的另一个原因是,您也可以删除事件处理程序。如果eventHandler函数不是匿名的(正如您的两个示例一样),那么您可以稍后按名称删除它


请参见此处:

另一件事:使用“true”和“false”参数,您可以在捕获或冒泡阶段将其附加到事件。对于.onmessage,您没有选择。

可能与@Vega重复您提到的问题线程更多地是关于html内联方法与JS方法。似乎唯一的优势是能够添加/删除事件监听器EAH,以及您所说的将多个事件处理程序添加到单个元素的能力。x、 onmessage=。。。将始终意味着它(x)有一个onmessage的处理程序,而重复调用x.addEventListener将使每个处理程序保持连接状态。:)