JavaScript instanceof 的使用方法示例介绍


Posted in Javascript onOctober 23, 2013

在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 “object”。这就需要用到instanceof来检测某个对象是不是另一个对象的实例。

通常来讲,使用 instanceof 就是判断一个实例是否属于某种类型。
另外,更重的一点是 instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型。

// 判断 foo 是否是 Foo 类的实例 , 并且是否是其父类型的实例function Aoo(){} 
function Foo(){} 
Foo.prototype = new Aoo();//JavaScript 原型继承 
var foo = new Foo(); 
console.log(foo instanceof Foo)//true 
console.log(foo instanceof Aoo)//true

上面的代码中是判断了一层继承关系中的父类,在多层继承关系中,instanceof 运算符同样适用。

instanceof 复杂用法

function Cat(){} 
Cat.prototype = {} function Dog(){} 
Dog.prototype ={} 
var dog1 = new Dog(); 
alert(dog1 instanceof Dog);//true 
alert(dog1 instanceof Object);//true 
Dog.prototype = Cat.prototype; 
alert(dog1 instanceof Dog);//false 
alert(dog1 instanceof Cat);//false 
alert(dog1 instanceof Object);//true; 
var dog2= new Dog(); 
alert(dog2 instanceof Dog);//true 
alert(dog2 instanceof Cat);//true 
alert(dog2 instanceof Object);//true 
Dog.prototype = null; 
var dog3 = new Dog(); 
alert(dog3 instanceof Cat);//false 
alert(dog3 instanceof Object);//true 
alert(dog3 instanceof Dog);//error

要想从根本上了解 instanceof 的奥秘,需要从两个方面着手:1,语言规范中是如何定义这个运算符的。2,JavaScript 原型继承机。大家感兴趣的可以去查看相关资料。
Javascript 相关文章推荐
jQuery AJAX 调用WebService实现代码
Mar 24 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
Apr 21 Javascript
DIV始终居中的js代码
Feb 17 Javascript
TypeError document.getElementById(...) is null错误原因
May 18 Javascript
JavaScript面向对象精要(下部)
Sep 12 Javascript
Angular 4中如何显示内容的CSS样式示例代码
Nov 06 Javascript
判断滚动条滑到底部触发事件(实例讲解)
Nov 15 Javascript
实战node静态文件服务器的示例代码
Mar 08 Javascript
js中Array对象的常用遍历方法详解
Jan 17 Javascript
Vue-Cli项目优化操作的实现
Oct 27 Javascript
vue data恢复初始化数据的实现方法
Oct 31 Javascript
webpack常用构建优化策略小结
Nov 21 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
Oct 23 #Javascript
用js来获取上传的文件名纯粹是为了美化而用
Oct 23 #Javascript
ajax与302响应代码测试
Oct 23 #Javascript
通过js简单实现将一个文本内容转译成加密文本
Oct 22 #Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 #Javascript
Javascript简单实现可拖动的div
Oct 22 #Javascript
将两个div左右并列显示并实现点击标题切换内容
Oct 22 #Javascript
You might like
php定界符
2014/06/19 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
jQuery 表格插件整理
2010/04/27 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
用python找出那些被“标记”的照片
2017/04/20 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
python中Lambda表达式详解
2019/11/20 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
如何打开WebSphere远程debug
2014/10/10 面试题
opencv实现图像几何变换
2021/03/24 Python
信息科学与技术专业求职信范文
2014/02/20 职场文书
自荐信如何制作?
2014/02/21 职场文书
求职简历自我评价范例
2014/03/12 职场文书
出国留学经济担保书
2014/04/01 职场文书
教育合作协议范本
2014/10/17 职场文书
2015年重阳节主持词
2015/07/04 职场文书
英语导游欢迎词
2015/09/30 职场文书
Django实现聊天机器人
2021/05/31 Python
千万级用户系统SQL调优实战分享
2022/03/03 MySQL