instanceof 的作用
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 的作用相关推荐
- 《Java程序书面采访猿收藏》之 instanceof的作用是什么
instanceof它是Java二元运算语言,它的作用是推断对象变量引用被指向的类型是一类(或接口.抽象类.父亲)示例.即,对象是否是它的一个实例离开它的类的权.返回boolean数据类型. 常见的使 ...
- bind函数作用、应用场景以及模拟实现
bind函数 bind 函数挂在 Function 的原型上 Function.prototype.bind 创建的函数都可以直接调用 bind,使用: function func(){console ...
- isAssignableFrom和isInstance、instanceof
Class.isAssignableFrom Java的Class类,有一个native的方法: isAssignableFrom public native boolean isAssignable ...
- Java之Object类与instanceof关键字
Object类是所有类的父类: 我们上下代码: 1 package com.learn.chap03.sec14; 2 3 public class A { // 上面类A继承了Object类,因此又 ...
- JS原型链与instanceof底层原理
转载自 JS原型链与instanceof底层原理 一.问题: instanceof 可以判断一个引用是否属于某构造函数: 另外,还可以在继承关系中用来判断一个实例是否属于它的父类型. 老师说:ins ...
- java学习中,instanceof 关键字 和 final 关键字、值的传递(java 学习中的小记录)...
java学习中,instanceof 关键字 和 final 关键字.值的传递(java 学习中的小记录)作者:王可利(Star·星星) instanceof 关键字 作用: 1.用来判断某个对象是否 ...
- typeof和instanceof的区别
typeof 用于判断数据类型,返回值有number.string.boolean.function.undefined.object 六个. <script>let a = [1, 2, ...
- ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口?
众所周知,在List集合中,我们经常会用到ArrayList以及LinkedList集合,但是通过查看源码,就会发现ArrayList实现RandomAccess接口,但是RandomAccess接口 ...
- java中instanceof的用法和实战
https://blog.csdn.net/qq_37192800/article/details/78861387 https://www.cnblogs.com/zjxynq/p/5882756. ...
最新文章
- JDK 8 Stream 数据流效率怎么样?
- mysql MDL锁如何解决_MySQL元数据锁MDL
- 智源学术顾问David Harel:经典建模与AI的联姻,如何攻破机器学习的可解释性?| 大师讲座...
- 关于使用data()获取自定义属性出现undefined的说明
- 数据库监视器(SQL Server Profilter)
- linux 用户与用户发邮件,Linux自动向指定用户发送邮件
- 如何把定义的数组传回主函数_java数组如何定义
- 关于Zipalign的介绍和使用方法
- Android 进程常驻(5)----开机广播的简单守护以及总结
- Gradle多项目构建–类似父pom的结构
- java正则表达式非贪婪_正则表达式中的贪婪与非贪婪匹配模式
- Java笔记-CXF使用Adapter处理复杂类型(如Map)
- 还在用iTunes管理iPhone这款软件帮你轻松解决
- 一阶线性微分方程的初等积分法例题
- 西威变频器avo下载调试资料_全程图解变频器应用与检测技能
- 各大快递电子面单---Api接口(顺丰、快递鸟、菜鸟)
- 利用FPGA实现出租车计费系统
- 基于SSM实现高校应届生就业管理系统
- JS 函数参数及其传递
- 【Python爬虫项目】链家房屋信息抓取(超详细适合新手练习附源码)
热门文章
- 内存和外存的主要区别_内存与外存的关键区别有哪些?
- mysql拷贝恢复.frm_通过.frm .ibd文件恢复MySQL数据
- oralce mysql_Oralce和Mysql的3个区别
- 网络推广是做什么的介绍网站内容更新时需要遵循哪些原则?
- 怎样做网络推广浅析怎样优化网站的导航栏?
- 网络营销之下的泡泡玛特盲盒广受年轻用户群体的喜爱与关注
- 企业网络推广专员浅析企业网络推广日常维护要做好
- 营销型网站吸引用户说难也难,说简单也简单
- mysql表大小限制_技术分享 | 在磁盘上查找 MySQL 表的大小
- java jframe显示图片_java怎么在JFrame中显示动态图片