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 相关文章推荐
List Installed Hot Fixes
Jun 12 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
Dec 02 Javascript
javascript object array方法使用详解
Dec 03 Javascript
window.open 以post方式传递参数示例代码
Feb 27 Javascript
深入浅出理解javaScript原型链
May 09 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
Sep 11 Javascript
第一次接触JS require.js模块化工具
Apr 17 Javascript
bootstrap响应式表格实例详解
May 15 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
如何制作一个Node命令行图像识别工具
Dec 12 Javascript
Vuex,iView UI面包屑导航使用扩展详解
Nov 04 Javascript
JS实现电商商品展示放大镜特效
Jan 07 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 大数据量及海量数据处理算法总结
2011/05/07 PHP
php简单实现MVC
2015/02/05 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
Open and Print a Word Document
2007/06/15 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
python中定义结构体的方法
2013/03/04 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
python实现媒体播放器功能
2018/02/11 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
公司周年庆典邀请函
2014/01/12 职场文书
安全生产先进个人材料
2014/02/06 职场文书
推荐信怎么写
2014/05/09 职场文书
民事和解协议书格式
2014/11/29 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang