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 通过事件委派一次绑定多种事件,以减少事件冗余
Jun 30 Javascript
用Jquery实现多级下拉框无刷新的联动
Dec 22 Javascript
JS的replace方法介绍
Oct 20 Javascript
jQuery中:first选择器用法实例
Dec 30 Javascript
jQuery简单实现验证邮箱格式
Jul 15 Javascript
jquery带下拉菜单和焦点图代码分享
Aug 24 Javascript
jquery图片轮播特效代码分享
Apr 20 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
Jan 27 Javascript
express文件上传中间件Multer详解
Oct 24 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
Mar 14 Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
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
FCKeditor的安装(PHP)
2007/01/13 PHP
php 结果集的分页实现代码
2009/03/10 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
python中的turtle库函数简单使用教程
2018/07/23 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
浙大网新C/C++面试解惑
2015/05/27 面试题
学院书画协会部门职责
2013/11/28 职场文书
单位未婚证明范本
2014/01/18 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
城南旧事电影观后感
2015/06/16 职场文书