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下利用arguments实现string.format函数
Aug 24 Javascript
javascript遇到html5的一些表单属性
Jul 05 Javascript
javascript匀速运动实现方法分析
Jan 08 Javascript
基于jQuery日历插件制作日历
Mar 11 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
Jun 09 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
Aug 08 Javascript
浅谈Angular文字折叠展开组件的原理分析
Nov 24 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 Javascript
ES6 Object方法扩展的应用实例分析
Jun 25 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
Aug 16 Javascript
js判断两个数组相等的5种方法
May 06 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
一个显示天气预报的程序
2006/10/09 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
Prototype源码浅析 Number部分
2012/01/16 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
详解Vue.js入门环境搭建
2017/03/17 Javascript
js实现放大镜特效
2017/05/18 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
Python pass 语句使用示例
2014/03/11 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
pybind11在Windows下的使用教程
2019/07/04 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
JBL英国官网:JBL UK
2018/07/04 全球购物
自动化专业个人求职信范文
2013/11/29 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
119消防日活动总结
2014/08/29 职场文书
长江三峡导游词
2015/01/31 职场文书
新生开学寄语大全
2015/05/28 职场文书
优秀创业计划书分享
2019/07/19 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
Python利用zhdate模块实现农历日期处理
2022/03/31 Python
如何通过cmd 连接阿里云服务器
2022/04/18 Servers