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

语法

  object instanceof constructor

从语法的字面意思来理解就是 某一个对象是否有该构造器生成

从实际效果上来讲,instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链 ( __proto__ ) 上

也可以用js来替代  constructor.prototype.isPrototypeOf( object )

通过js脚本来实现 instanceof 运算符:

  

function _instanceof( object,cons ){if( object.__proto__ !== null ){if( object.__proto__ == cons.prototype ){return true}return _instanceof( object.__proto__ , cons )}return false
}function A(){}var c = new A()
_instanceof(c,A);//true
_instanceof(c,Object);//true

例子:

// 定义构造函数
function C(){}
function D(){} var o = new C();o instanceof C; // true,因为 Object.getPrototypeOf(o) === C.prototypeo instanceof D; // false,因为 D.prototype不在o的原型链上o instanceof Object; // true,因为Object.prototype.isPrototypeOf(o)返回true
C.prototype instanceof Object // true,同上C.prototype = {};
var o2 = new C();o2 instanceof C; // trueo instanceof C; // false,C.prototype指向了一个空对象,这个空对象不在o的原型链上.D.prototype = new C(); // 继承
var o3 = new D();
o3 instanceof D; // true
o3 instanceof C; // true

  

转载于:https://www.cnblogs.com/xiaxiaodong/p/8276836.html

instanceof 的作用相关推荐

  1. 《Java程序书面采访猿收藏》之 instanceof的作用是什么

    instanceof它是Java二元运算语言,它的作用是推断对象变量引用被指向的类型是一类(或接口.抽象类.父亲)示例.即,对象是否是它的一个实例离开它的类的权.返回boolean数据类型. 常见的使 ...

  2. bind函数作用、应用场景以及模拟实现

    bind函数 bind 函数挂在 Function 的原型上 Function.prototype.bind 创建的函数都可以直接调用 bind,使用: function func(){console ...

  3. isAssignableFrom和isInstance、instanceof

    Class.isAssignableFrom Java的Class类,有一个native的方法: isAssignableFrom public native boolean isAssignable ...

  4. Java之Object类与instanceof关键字

    Object类是所有类的父类: 我们上下代码: 1 package com.learn.chap03.sec14; 2 3 public class A { // 上面类A继承了Object类,因此又 ...

  5. JS原型链与instanceof底层原理

    转载自  JS原型链与instanceof底层原理 一.问题: instanceof 可以判断一个引用是否属于某构造函数: 另外,还可以在继承关系中用来判断一个实例是否属于它的父类型. 老师说:ins ...

  6. java学习中,instanceof 关键字 和 final 关键字、值的传递(java 学习中的小记录)...

    java学习中,instanceof 关键字 和 final 关键字.值的传递(java 学习中的小记录)作者:王可利(Star·星星) instanceof 关键字 作用: 1.用来判断某个对象是否 ...

  7. typeof和instanceof的区别

    typeof 用于判断数据类型,返回值有number.string.boolean.function.undefined.object 六个. <script>let a = [1, 2, ...

  8. ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口?

    众所周知,在List集合中,我们经常会用到ArrayList以及LinkedList集合,但是通过查看源码,就会发现ArrayList实现RandomAccess接口,但是RandomAccess接口 ...

  9. java中instanceof的用法和实战

    https://blog.csdn.net/qq_37192800/article/details/78861387 https://www.cnblogs.com/zjxynq/p/5882756. ...

最新文章

  1. JDK 8 Stream 数据流效率怎么样?
  2. mysql MDL锁如何解决_MySQL元数据锁MDL
  3. 智源学术顾问David Harel:经典建模与AI的联姻,如何攻破机器学习的可解释性?| 大师讲座...
  4. 关于使用data()获取自定义属性出现undefined的说明
  5. 数据库监视器(SQL Server Profilter)
  6. linux 用户与用户发邮件,Linux自动向指定用户发送邮件
  7. 如何把定义的数组传回主函数_java数组如何定义
  8. 关于Zipalign的介绍和使用方法
  9. Android 进程常驻(5)----开机广播的简单守护以及总结
  10. Gradle多项目构建–类似父pom的结构
  11. java正则表达式非贪婪_正则表达式中的贪婪与非贪婪匹配模式
  12. Java笔记-CXF使用Adapter处理复杂类型(如Map)
  13. 还在用iTunes管理iPhone这款软件帮你轻松解决
  14. 一阶线性微分方程的初等积分法例题
  15. 西威变频器avo下载调试资料_全程图解变频器应用与检测技能
  16. 各大快递电子面单---Api接口(顺丰、快递鸟、菜鸟)
  17. 利用FPGA实现出租车计费系统
  18. 基于SSM实现高校应届生就业管理系统
  19. JS 函数参数及其传递
  20. 【Python爬虫项目】链家房屋信息抓取(超详细适合新手练习附源码)

热门文章

  1. 内存和外存的主要区别_内存与外存的关键区别有哪些?
  2. mysql拷贝恢复.frm_通过.frm .ibd文件恢复MySQL数据
  3. oralce mysql_Oralce和Mysql的3个区别
  4. 网络推广是做什么的介绍网站内容更新时需要遵循哪些原则?
  5. 怎样做网络推广浅析怎样优化网站的导航栏?
  6. 网络营销之下的泡泡玛特盲盒广受年轻用户群体的喜爱与关注
  7. 企业网络推广专员浅析企业网络推广日常维护要做好
  8. 营销型网站吸引用户说难也难,说简单也简单
  9. mysql表大小限制_技术分享 | 在磁盘上查找 MySQL 表的大小
  10. java jframe显示图片_java怎么在JFrame中显示动态图片