为什么onmouseover()函数与属性onmouseover=";javascript代码;但是';无法使用addEventListener()函数?

为什么onmouseover()函数与属性onmouseover=";javascript代码;但是';无法使用addEventListener()函数?,javascript,Javascript,我的要点是在javascript代码中触发onmouseover事件。我使用了这个函数 元素上的onmouseover()。但它在某些情况下不起作用 这是一个演示代码: HTML文件: 文本文本 外部Javascript文件: var myP = document.getElementById("p-id"); myP.addEventListener("mouseover", function() { this.style.backgroundColor = "red"; }

我的要点是在javascript代码中触发
onmouseover
事件。我使用了这个函数 元素上的
onmouseover()
。但它在某些情况下不起作用

这是一个演示代码:

HTML文件:

文本文本

外部Javascript文件:

var myP = document.getElementById("p-id");
myP.addEventListener("mouseover", function() {
    this.style.backgroundColor = "red";     
});
// trigger the mouseover:
myP.onmouseover(); // console error: onmouseover is not a function.
var myP = document.getElementById("p-id");
// trigger the mouseover:
myP.onmouseover(); // works well 
但是当我在元素上使用属性
onmouseover=“javascript code”
时,函数运行良好:

HTML文件:

文本文本

外部Javascript文件:

var myP = document.getElementById("p-id");
myP.addEventListener("mouseover", function() {
    this.style.backgroundColor = "red";     
});
// trigger the mouseover:
myP.onmouseover(); // console error: onmouseover is not a function.
var myP = document.getElementById("p-id");
// trigger the mouseover:
myP.onmouseover(); // works well 

我已经搜索原因很久了,但我没有任何线索。

mouseover上的
属性是
HTMLElement上的setter/getter。prototype

var myP=document.getElementById(“p-id”);
常量描述符=Object.getOwnPropertyDescriptor(HTMLElement.prototype,“onmouseover”);
log(描述符);
log(descriptor.get.call(myP))
文本文本