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

时间: 2024-10-11 21:38:51

类型③instanceof 操作符的相关文章

10.4 使用instanceof操作符判断对象类型

1.概述 当在程序中执行向下转型操作时,如果父类对象不是子类对象的实例,就会发生ClassCastException异常,所以在做执行向下转型之前需要养成一个良好的习惯,就是判断父类对象是否为子类对象的实例.这个判断通常使用instanceof操作符来完成. 语法格式:myobject instanceof ExampleClass //myobject:某类的对象引用 ExampleClass:某个类 例子10.7 1 class Quadrangle_B{ 2 //SomeSentence

type of 操作符和instanceof操作符的区别以及使用方法

经常见到用typeof和instanceof检测一个变量类型,作为前端小白经常不知道这两者具体的详细用法和区别,今天就整理一下谨记! javaScript中有6中数据类型: 1.Undefinde 2.Null 3.Number 4.String 5.Boolean 6.Object 1.typeof操作符 一个值使用typeof操作符会返回下列字符串: 1.Undefinde 2.Functon 如果值是函数 3.Number 4.String 5.Boolean 6.Object 如果值是对

instanceof 操作符 接口 多态

instanceof 操作符result =  对象名称 instanceof 类型 参数:result:布尔类型. 对象名称:必选项,任意对象表达式. 类型:必选项,任意已定义的类,可以是api中的类,也可以说自定义的类. 说明:如果对象是这个类型的实例,则instanceof运算符返回true.如果对象不是指定类的一个实例,或者对象是null,则返回false Object类Object类是所有类的父类object类的作用object类中的方法 接口 是特殊的抽象类即所有方法都是抽象方法的类

php 中 instanceof 操作符

"instanceof"操作符的使用非常简单,它用两个参数来完成其功能.第一个参数是你想要检查的对象,第二个参数是类名(事实上是一个接口名),用于确定是否这个对象是相应类的一个实例.它的基本语法如下:if (object instanceof class name){//继承关系//} 作用:(1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口. 第一种用法: 1 <?php 2 class A 3 { 4 public function index() 5

instanceof操作符判断对象类型

instanceof 的语法格式如下: myobject instanceof ExampleClass myobject:某类的对象引用 ExampleClass:某个类 1 class Quadrangle{ 2 public static void draw(Quadrangle q) { 3 } 4 } 5 6 class Square extends Quadrangle { 7 8 } 9 10 class Anything { 11 12 } 13 public class Par

类型②typeof 操作符

typeof 操作符(和 instanceof 一起)或许是 JavaScript 中最大的设计缺陷, 因为几乎不可能从它们那里得到想要的结果. 尽管 instanceof 还有一些极少数的应用场景,typeof 只有一个实际的应用(译者注:这个实际应用是用来检测一个对象是否已经定义或者是否已经赋值), 而这个应用却不是用来检查对象的类型. 注意: 由于 typeof 也可以像函数的语法被调用,比如typeof(obj),但这并不是一个函数调用. 那两个小括号只是用来计算一个表达式的值,这个返回

python语言入门--第二章 类型与操作符

2.1 Python程序结构 Python 可分为模块.语句和对象,程序是由模块组成,模块包含语句,语句生成.处理对象. 2.2 为什么使用内置对象 往往比自己定制的数据结构更有效. 2.3 数字 Python的长整数型(后面跟L或l)可以任意长,可以扩展到内存不允许为止. 普通的整数的精度与C的长整数型一样(至少32位). 八进制和十六进制和C一样,八,0:十六,0x or 0X 复数,实数+虚数J(j),如3+4J Python 特有的部分操作符 x  or y     (只有x为假时,y才

快学Scala 第一课 (变量,类型,操作符)

Scala 用val定义常量,用var定义变量. 常量重新赋值就会报错. 变量没有问题. 注意:我们不需要给出值或者变量的类型,scala初始化表达式会自己推断出来.当然我们也可以指定类型. 多个值和变量可以一起声明: Scala 类型:Byte, Char, Short, Int, Long, Float, Double, Boolean Scala不区分基本类型和引用类型(包装类型) Scala StringOps类给字符串追加了上百种操作,所以在"Hello".intersect

instanceof操作符

instanceof 用法result = 对象名称 instanceof 类型参数:result:布尔类型.对象名称:必选项,任意对象表达式.类型:必选项,任意已定义的类,可以是API中的类,可以是自定义的类. 说明:如果对象是这个类型的一个实例,则 instanceof 运算符返回 true.如果对象不是指定类的一个实例,或者对象是 null,则返回 falseinstanceof 运算符是用来在运行时指出对象是否是特定类的一个实例 abstract class Animal { abstr