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去空格处理方法
Nov 18 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
侧栏跟随滚动的简单实现代码
Mar 18 Javascript
Jquery选中或取消radio示例
Sep 29 Javascript
js 删除数组的几种方法小结
Feb 21 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
Apr 06 Javascript
jQuery动态背景图片效果实现方法
Jul 03 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
May 03 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
Jan 04 Javascript
js 获取json数组里面数组的长度实例
Oct 31 Javascript
详解extract-text-webpack-plugin 的使用及安装
Jun 12 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
Sep 18 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按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
2016/11/22 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
php文件包含的几种方式总结
2019/09/19 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
js动态切换图片的方法
2015/01/20 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
vue服务端渲染的实例代码
2017/08/28 Javascript
vue.js 使用axios实现下载功能的示例
2018/03/05 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
python快速查找算法应用实例
2014/09/26 Python
Python自动连接ssh的方法
2015/03/07 Python
python生成二维码的实例详解
2017/10/29 Python
python代码过长的换行方法
2018/07/19 Python
python对日志进行处理的实例代码
2018/10/06 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
python如何修改文件时间属性
2021/02/05 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
普罗米修斯教学反思
2014/02/06 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
教代会开幕词
2015/01/28 职场文书