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 相关文章推荐
jquery实现带二级菜单的导航示例
Apr 28 Javascript
一个Action如何调用两个不同的方法
May 22 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
Sep 29 Javascript
javascript 回调函数详解
Nov 11 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
Sep 04 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
jquery加载单文件vue组件的方法
Jun 20 jQuery
vant(ZanUi)结合async-validator实现表单验证的方法
Dec 06 Javascript
js实现一个简易计算器
Mar 30 Javascript
JS事件流与事件处理程序实例分析
Aug 16 Javascript
vue实现设置载入动画和初始化页面动画效果
Oct 28 Javascript
JQuery基于FormData异步提交数据文件
Sep 01 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
php微信高级接口群发 多客服
2016/06/23 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
js 替换
2008/02/19 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
Python读取excel中的图片完美解决方法
2018/07/27 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
英文简历自荐信范文
2013/12/11 职场文书
小学开学寄语
2014/01/19 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android