`

JavaScript Garden - instanceof 操作符

阅读更多

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 操作符一样,任何其它的用法都应该是避免的。

分享到:
评论

相关推荐

    前端面试题之baseJS-instanceof.zip

    "baseJS-instanceof.zip"这个压缩包文件显然聚焦于JavaScript的基础知识,特别是`instanceof`操作符的使用。在这里,我们将深入探讨`instanceof`在JavaScript中的工作原理、相关知识点以及在实际编程中的应用。 `...

    PHP强制对象类型之instanceof操作符

    ### instanceof操作符简介 `instanceof`操作符的语法格式如下: ```php objeto instanceof Clase objeto instanceof Interfaz ``` 这里,`objeto`是你想要检查的对象,而`Clase`或`Interfaz`是你期望的类名或...

    js中的instanceof操作符1

    `instanceof`是JavaScript中的一个操作符,用于检查一个对象是否是特定构造函数的实例,或者更具体地说,是检查该对象的原型链上是否存在指定构造函数的`prototype`。这个操作符对于理解和处理对象继承关系非常关键...

    288.286.JAVA基础教程_面向对象(中)-instanceof关键字的使用(288).rar

    4. **动态编程和反射**:在动态加载类或使用反射时,`instanceof`可用于检查对象是否兼容特定的类或接口,从而决定如何操作。 5. **设计模式**:在某些设计模式中,如工厂模式或装饰器模式,`instanceof`可以帮助...

    Java 实例 - instanceof 关键字用法源代码-详细教程.zip

    这个关键字可以帮助开发者确定对象的实际类型,从而在运行时进行类型检查,执行条件操作或者执行多态性操作。在这个详细教程中,我们将深入探讨`instanceof`的关键字用法,并通过实例代码来理解它的功能和应用场景。...

    08-手写instanceof.md

    特别是对于JavaScript中的instanceof操作符的深入理解,是前端开发者应该掌握的一个重要知识点。instanceof操作符常用于判断一个实例对象是否为某个类的实例,或者实例是否属于某个类的原型链上。 ### instanceof...

    Java面向对象程序设计-instanceof运算符.pptx

    比如,如果我们有一个`Crop`类和一个`Animal`类都继承自`Resource`类,当我们处理一个未知类型的`Resource`对象时,可以使用`instanceof`来确定它是作物还是动物,然后执行特定于其类型的管理操作,如播种、收割或...

    Java语言基础入门教程 Java实训教程 4.类构造函数-this-静态属性方法-instanceof运算符共55页.pptx

    本次教程的主题围绕着Java中的高级类概念展开,具体包括类构造函数、`this`关键字、静态属性和方法、`instanceof`运算符等内容。这些知识点对于深入理解Java面向对象编程至关重要。 #### 二、类构造函数 构造函数是...

    instanceof 操作符备忘

    NULL 博文链接:https://xiaoyu1985ban.iteye.com/blog/940991

    javascript之typeof、instanceof操作符使用探讨

    写javascirpt代码时,typeof和instanceof这两个操作符时不时就会用到,堪称必用。但是!使用它们总是不能直接的得到想要的结果,非常纠结,普遍的说法认为“这两个操作符或许是javascript中最大的设计缺陷,因为几乎...

    JavaScript_Garden_CN

    4. **类型**: 探讨了相等与比较、`typeof`操作符、`instanceof`操作符、类型转换等,这些都是处理数据类型时必须理解的概念。 5. **核心概念**: 强调了避免使用`eval`的重要性,解释了`undefined`和`null`的区别,...

    js代码-instanceof的实现

    JavaScript中的`instanceof`操作符是用来检测一个对象是否属于某个构造函数的实例。它在JavaScript的面向对象编程中扮演着重要角色,帮助开发者判断对象的类型。本文将深入探讨`instanceof`的工作原理,以及如何在...

    js代码-instanceof手写

    在JavaScript中,`instanceof` 是一个非常重要的操作符,用于判断一个对象是否属于某个类或构造函数的实例。这个操作符在开发过程中经常用来进行类型检查,确保对象具有特定的属性或方法。本篇文章将深入探讨`...

    electron-instanceof-bug

    ElectronJS instanceof bug 演示 这演示了在 Windows 上使用 ElectronJS 时 instanceof 的错误。 问题: : 运行测试 电子测试: npm run test-electron 节点测试: npm run test-node

    【JavaScript源代码】JavaScript 手动实现instanceof的方法.docx

    当调用`new`操作符创建一个新实例时,这个实例的`__proto__`就被设置为构造函数的`prototype`。 下面是一个手动实现`instanceof`的例子: ```javascript function myInstanceof(obj, constructor) { let ...

    java instanceof操作符使用及原理解析

    在Java编程语言中,`instanceof`操作符是一个至关重要的工具,它允许程序员在运行时检查对象的类型。`instanceof`主要用于确定一个对象是否属于某个特定类、接口或者其子类(或实现)。理解`instanceof`的使用和原理...

Global site tag (gtag.js) - Google Analytics