怎样理解 instanceof

て烟熏妆下的殇ゞ 提交于 2019-11-29 09:45:56

instanceof 运算符用来判断一个对象在其原型链中是否存在一个构造函数的 prototype 属性。

也就是说, instanceof 判断的实际上是某个对象是否为某个构造函数的实例, 因为es5中没有类的概念, 这里的instanceof其实是充当了一个判断类的实例对象的功能.

比如下面的两个例子:

document.getElementsByTagName() 返回一个类似数组的对象, 这个对象是 HTMLCollection 这个构造函数的实例. 

而 document.querySelectorAll() 返回一个类似数组的对象, 这个对象是 NodeList 这个构造函数的实例. 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>李雷</li>
        <li>韩梅梅</li>
        <li>李强</li>
        <li>徐帆</li>
    </ul>
    <script>
        document.getElementsByTagName("li") instanceof HTMLCollection; // true
        document.querySelectorAll("li") instanceof NodeList; // true
    </script>
</body>
</html>

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!