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中通过URL传递汉字的方法
Apr 09 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
Nov 11 Javascript
15款jQuery分布引导插件分享
Feb 04 Javascript
JavaScript实现文字与图片拖拽效果的方法
Feb 16 Javascript
jQuery实现首页顶部可伸缩广告特效代码
Apr 15 Javascript
JScript中的条件注释详解
Apr 24 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
Nov 18 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
Feb 19 Javascript
Node.js 文件夹目录结构创建实例代码
Jul 08 Javascript
JavaScript排序算法动画演示效果的实现方法
Oct 18 Javascript
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
mpvue跳转页面及注意事项
Aug 03 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程序实现支持页面后退的两种方法
2008/06/30 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
详解php中的implements 使用
2017/06/13 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
Python的高阶函数用法实例分析
2019/04/11 Python
Python流程控制语句的深入讲解
2020/06/15 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
新教师工作感言
2014/02/16 职场文书
社区先进事迹材料
2014/05/19 职场文书
医院节能减排方案
2014/06/13 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js