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中处理带有命名空间的XML数据
Jun 13 Javascript
jquery中push()的用法(数组添加元素)
Nov 25 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
Apr 20 Javascript
javascript显示倒计时控制按钮的简单实现
Jun 07 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
JavaScript数组的5种迭代方法
Sep 29 Javascript
手把手教你使用vue-cli脚手架(图文解析)
Nov 08 Javascript
Vue+Node实现的商城用户管理功能示例
Dec 23 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
vue数据响应式原理知识点总结
Feb 16 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
Oct 28 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
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
JS JSOP跨域请求实例详解
2016/07/04 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
Python装饰器基础详解
2016/03/09 Python
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
Python元字符的用法实例解析
2018/01/17 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
社会实践评语
2014/04/28 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
三方协议书
2015/01/27 职场文书
结婚老公保证书
2015/02/26 职场文书
植物园观后感
2015/06/11 职场文书
导游词之镜泊湖
2019/12/09 职场文书