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 兼容鼠标滚轮事件
Apr 07 Javascript
BOM与DOM的区别分析
Oct 26 Javascript
js multiple全选与取消全选实现代码
Dec 04 Javascript
document.getElementBy("id")与$("#id")有什么区别
Sep 22 Javascript
js 通过cookie实现刷新不变化树形菜单
Oct 30 Javascript
对JavaScript中this指针的新理解分享
Jan 31 Javascript
JS实现日期时间动态显示的方法
Dec 07 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
Jul 21 Javascript
浅谈Webpack 持久化缓存实践
Mar 22 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
Jun 11 Javascript
解决vue中修改export default中脚本报一大堆错的问题
Aug 27 Javascript
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
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
php5 and xml示例
2006/11/22 PHP
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
php array_search() 函数使用
2010/04/13 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
js加解密 脚本解密
2008/02/22 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
python定义类的简单用法
2020/07/24 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
SQL Server面试题
2013/04/04 面试题
模具设计与制造专业应届生求职信
2013/10/18 职场文书
英文简历自荐信范文
2013/12/11 职场文书
二年级小学生评语
2014/04/21 职场文书
干部个人对照检查材料
2014/08/25 职场文书
公司业务员管理制度
2015/08/05 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电