zoukankan      html  css  js  c++  java
  • 类型③instanceof 操作符

    instanceof 操作符用来比较两个操作数的构造函数。只有在比较自定义的对象时才有意义。 如果用来比较内置类型,将会和 typeof 操作符 一样用处不大。

    比较自定义对象

    function Foo() {}
    function Bar() {}
    Bar.prototype = new Foo();
    
    new Bar() instanceof Bar; // true
    new Bar() instanceof Foo; // true
    
    // 如果仅仅设置 Bar.prototype 为函数 Foo 本身,而不是 Foo 构造函数的一个实例
    Bar.prototype = Foo;
    new Bar() instanceof Foo; // false
    

    instanceof 比较内置类型

    new String('foo') instanceof String; // true
    new String('foo') instanceof Object; // true
    
    'foo' instanceof String; // false
    'foo' instanceof Object; // false
    

    有一点需要注意,instanceof 用来比较属于不同 JavaScript 上下文的对象(比如,浏览器中不同的文档结构)时将会出错, 因为它们的构造函数不会是同一个对象。

    结论

    instanceof 操作符应该仅仅用来比较来自同一个 JavaScript 上下文的自定义对象。 正如 typeof 操作符一样,任何其它的用法都应该是避免的。

  • 相关阅读:
    第三章 读书笔记
    第一章 读书笔记
    第二章 读书笔记
    第九章
    第十章
    第8章 蜂鸣器
    第7章 led闪烁
    第6章 第一个Linux驱动程序:统计单词个数
    第5章 搭建S3C6410开发板环境
    第3章 Git使用入门
  • 原文地址:https://www.cnblogs.com/luckyxb/p/6398551.html
Copyright © 2011-2022 走看看