gpt4 book ai didi

Javascript:typeof 和 instanceof 结果矛盾?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:08 24 4
gpt4 key购买 nike

我在对象上执行 typeof 和 instanceof 时看到矛盾的结果。

我有以下测试页:

<html>
<body>
<object id="test" />
<script type="text/javascript">
var foo = document.getElementById("test");
console.log(typeof foo); // returns "function"
console.log(foo instanceof Function); // returns false
console.log(foo instanceof Object); // returns true
</script>
</body>
</html>

“typeof foo”返回“函数”但是“foo instanceof Function”返回 false。

这对我来说没有意义。对象如何具有函数类型而不是函数实例?另外,我希望“typeof foo”返回“object”。

最佳答案

基本事实是 DOM 元素(例如,使用 document.getElementById() 获得)不是原生 JavaScript 对象。相反,它们是宿主对象。因此,它们不受适用于 native JavaScript 对象的通常规则的约束,并且它们的行为将(非常合理地)在不同浏览器之间大不相同。

简而言之,所有的赌注都落空了。不要依赖宿主对象在其记录的 API 之外的行为。

相关引用:

关于Javascript:typeof 和 instanceof 结果矛盾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5491685/

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