gpt4 book ai didi

javascript - JS 函数作为变量 [ getEventListeners API ]

转载 作者:行者123 更新时间:2023-11-28 11:15:47 24 4
gpt4 key购买 nike

我有两个类似的功能,但一个有效,另一个无效

function notWorking(el) {
return getEventListeners(el);
}
notWorking(document);
// result --> Uncaught ReferenceError: getEventListeners is not defined

working = function(el) {
return getEventListeners(el);
}
working(document);
// result --> Object {keyup: Array[1], …}

为什么 getEventListeners 在第二个函数内工作而不是在第一个函数内工作?

最佳答案

首先对于所有这些问题评论,getEventListeners不是自定义方法,它是浏览器提供的控制台API。

getEventListeners(object)

getEventListeners(object) returns the event listeners registered on the specified object.

我执行了您在问题中提供的代码。它在 Firefox 中运行良好,请检查附加的快照

Firefox firebug

我在 Chrome 浏览器中执行了相同的操作 Chrome devtools

但这不是预期的。由于它是有效,并且 Firefox 做得也很好,因此 Chrome 中也应该有同样的效果。我检查了var functionName = function() {} vs function functionName() {}中的所有答案以及所有其他资源。它解释了函数声明和函数表达式的范围/可见性。但这里问题是 getEventListeners 函数的可见性不是函数工作或函数不工作。

所以我认为这一定是 Chrome 中的缺陷,或者方法 getEventListerners 不应该在脚本中使用,它仅用于 Command Line API Reference 中指定的调试目的。 .

Note : This API is only available from within the console itself. You cannot access the Command Line API from scripts on the page.

<小时/>

更多信息

getEventListeners.toString()
> "function getEventListeners(node) { [Command Line API] }"

this.getEventListeners
> undefined //function is not accessible via window object

// where as

this.setTimeout
> setTimeout() { [native code] }

关于javascript - JS 函数作为变量 [ getEventListeners API ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33388336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com