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
操作符一样,任何其它的用法都应该是避免的。
分享到:
相关推荐
Java 实例 - instanceof 关键字用法源代码-详细教程.zip
实际上,在一个Web应用程序的执行期间,PHP 5提供给开发者至少两种方法来检查对象类型——它们分别是“instanceof”操作符和“类型提示”特征。本文将介绍PHP 5中\"instanceof\"操作符的使用;你很快就会发现,它...
288.286.JAVA基础教程_面向对象(中)-instanceof关键字的使用(288).rar
农业信息系统开发
NULL 博文链接:https://xiaoyu1985ban.iteye.com/blog/940991
js代码-instanceof的实现
写javascirpt代码时,typeof和instanceof这两个操作符时不时就会用到,堪称必用。但是!使用它们总是不能直接的得到想要的结果,非常纠结,普遍的说法认为“这两个操作符或许是javascript中最大的设计缺陷,因为几乎...
// true 因为 C.prototype 现在在 o3 的原型链上Copy to Clipboard需要注意的是,如果表达式 obj instanceof
js代码-instanceof手写
ElectronJS instanceof bug 演示 这演示了在 Windows 上使用 ElectronJS 时 instanceof 的错误。 问题: : 运行测试 电子测试: npm run test-electron 节点测试: npm run test-node
主要介绍了java instanceof操作符使用及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
JavaScript 手动实现instanceof的方法 1. instanceof的用法 instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上。 function Person() {} function Person2() {} const usr = ...
对象转换和instanceof操作符;清楚父类型与子类型之间的关系 能分清对象的类型; 理解引用变量类型与其指向的对象的类型 理解类型转换和显式向下转换的必要性 掌握instanceof操作符的使用 ;3;如果类Student是类Person...
test1 instanceof Immutable.Collection false test2 instanceof Immutable.Collection true test1 instanceof Immutable.Map false test2 instanceof Immutable.Map true Immutable.Map.isMap(test1) true ...
instanceof 马克-to-win java视频的详细的描述介绍