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 相关文章推荐
动态加载js的几种方法
Oct 23 Javascript
封装好的省市地区联动控件附下载
Aug 13 Javascript
extjs fckeditor集成代码
May 10 Javascript
jquery ready()的几种实现方法小结
Jun 18 Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
Jan 25 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
Jan 05 Javascript
JS同步、异步、延迟加载的方法
May 05 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
Sep 25 Javascript
JavaScript 性能提升之路(推荐)
Apr 10 Javascript
详解关于html,css,js三者的加载顺序问题
Apr 10 Javascript
微信小程序实现单个或多个倒计时功能
Nov 01 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基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
python实现超简单端口转发的方法
2015/03/13 Python
深入理解Django中内置的用户认证
2017/10/06 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
python构建指数平滑预测模型示例
2019/11/21 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
高中教师考核方案
2014/05/18 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
争先创优个人总结
2015/03/04 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
论文致谢词范文
2015/05/14 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python
Python 全局空间和局部空间
2022/04/06 Python
MySQL添加索引特点及优化问题
2022/07/23 MySQL