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 相关文章推荐
JavaScript 异步调用框架 (Part 2 - 用例设计)
Aug 03 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
js验证框架之RealyEasy验证详解
Jun 08 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
Dec 02 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
Dec 15 Javascript
vue实现添加标签demo示例代码
Jan 21 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
Jul 13 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 Javascript
实例讲解JavaScript预编译流程
Jan 24 Javascript
重学JS之显示强制类型转换详解
Jun 30 Javascript
微信小程序多列表渲染数据开关互不影响的实现
Jun 05 Javascript
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
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中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
JS验证码实现代码
2017/09/14 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
python中reader的next用法
2018/07/24 Python
使用python接入微信聊天机器人
2020/03/31 Python
Python: 传递列表副本方式
2019/12/19 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
pytorch SENet实现案例
2020/06/24 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
结构工程个人自荐信范文
2013/11/30 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
2014年质检员工作总结
2014/11/18 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
教师年度个人总结
2015/02/11 职场文书
新年晚会开场白
2015/05/29 职场文书
商业计划书格式、范文
2019/03/21 职场文书