gpt4 book ai didi

javascript - Javascript 函数怎么可能未定义但仍然可以调用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:29:54 25 4
gpt4 key购买 nike

当我写作时

window.external.AddSearchProvider

在 Internet Explorer 11 中,我得到“未定义”,但我仍然可以调用和使用该函数。在 Chrome 中,该方法已定义且可用。

如果我写

"AddSearchProvider" in window.external

我在 Internet Explorer 和 Chrome 中都得到“true”。

这是预期的行为吗?我的印象是我可以通过检查函数是否已定义来检查我是否可以使用该函数,还是我误解了它?

最佳答案

window.external.AddSearchProvider 不是“普通”javascript 函数。它是浏览器提供的 native 功能,每个浏览器的处理方式不同。

当您在浏览器 javascript 控制台中键入 window.external.AddSearchProvider 时,您会在浏览器的 javascript 中看到该值的表示形式。大多数浏览器都实现了其 native 功能的表示,但 Internet Explorer 似乎没有,因此您会看到 undefined,因为控制台没有可显示的值。但该函数是可调用的。

举个例子,你可以把它看成一个对象,有这样的方法

toJavascriptValue : function() {
return undefined;
}

关于javascript - Javascript 函数怎么可能未定义但仍然可以调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32951040/

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