位置: 编程技术 - 正文

JavaScript的instanceof运算符学习教程

编辑:rootadmin

推荐整理分享JavaScript的instanceof运算符学习教程,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

语法

参数object:要检测的对象.constructor:某个构造函数

描述:instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。

需要注意的是,如果表达式 obj instanceof Foo 返回true,则并不意味着该表达式会永远返回ture,因为Foo.prototype属性的值有可能会改变,改变之后的值很有可能不存在于obj的原型链上,这时原表达式的值就会成为false。另外一种情况下,原表达式的值也会改变,就是改变对象obj的原型链的情况,虽然在目前的ES规范中,我们只能读取对象的原型而不能改变它,但借助于非标准的__proto__魔法属性,是可以实现的。比如执行obj.__proto__ = {}之后,obj instanceof Foo就会返回false了。

instanceof和多全局对象(多个frame或多个window之间的交互)

JavaScript的instanceof运算符学习教程

在浏览器中,我们的脚本可能需要在多个窗口之间进行交互。多个窗口意味着多个全局环境,不同的全局环境拥有不同的全局对象,从而拥有不同的内置类型构造函数。这可能会引发一些问题。比如,表达式 [] instanceof window.frames[0].Array 会返回false,因为 Array.prototype !== window.frames[0].Array.prototype,因此你必须使用 Array.isArray(myObj) 或者 Object.prototype.toString.call(myObj) === "[object Array]"来判断myObj是否是数组。

示例instanceof的常规用法是判断a是否是b类型:

instanceof还能判断父类型:

Child构造函数继承自Father,实例a是Child构造的无疑,但是为何也是Father的实例呢?其实instanceof运算符的内核可以简单地用以下代码描述:

简单地说,a如果是b的实例,那么a肯定能使用b的prototype中定义的方法和属性,那么用代码表示就是a的原型链中有b.prototype取值相同的对象,于是顺着a的原型链一层层找就行了。

另外值得注意的是,String Number Boolean 以及Function等都是函数,而函数则是统一由Function构造而来的,so它们和任何单纯的函数一样,能用Function上的原型属性:

最后来简单讲讲最开始的两道题吧。

老生常谈JavaScript数组的用法 JavaScript数组简介JavaScript中的数组与其他语言中的数组是不同的,主要体现在:数组中存储的各项可以是不同类型的数据数组的大小是动态变化的,当新

浅谈javascript基础之客户端事件驱动 我们知道,面向对象发展起来后,一夜之间,几乎所有的语言都能基于对象了,JavaScript也是基于对象的语言。用户在浏览器上的行为称作事件,之后引发

javaScript知识点总结(必看篇) 1、javaScript的概念:是一种表述语言,也是一种基于对象(Object)和事件驱动(EventDriven)的,安全性好的脚本语言,运行在客户端,从而减轻服务器端的负担

标签: JavaScript的instanceof运算符学习教程

本文链接地址:https://www.jiuchutong.com/biancheng/370121.html 转载请保留说明!

上一篇:实例讲解JavaScript中instanceof运算符的用法(实例讲解命局与大运流年作用)

下一篇:老生常谈JavaScript数组的用法(老生常谈的近义词)

  • 注册资本印花税减半征收政策
  • 哪些情形免征契税
  • 教育附加税税率多少?
  • 银行开出的发票可以进行税抵扣吗
  • 0税率发票有什么用
  • 非营利组织免交的增值税转入哪个科目
  • 本年支付 历年支付
  • 个体餐饮要交什么税
  • 赊销现金折扣分录
  • 生产企业有哪些费用
  • 购买沙子违法吗
  • 年金计算个税需要扣除吗
  • 银行承兑汇票上的承兑日期
  • 旧房转让如何缴纳土地增值税
  • 营改增对运输业的影响
  • 计提工资和实际发放工资
  • 增值税发票金额是含税还是不含税价
  • 软件企业即征即退例题
  • 法人实名认证后没有绑定企业怎么办
  • 实收资本的期初余额在借方还是贷方
  • 质量扣款入什么科目
  • 应收账款周转率高说明
  • 核定征收要交企业所得税吗
  • 小规模纳税人开票限额是多少
  • win7安装netframework4.5
  • eclipse中创建webgis项目
  • 税务 终结执行
  • 外国企业如何在阿联酋注册商标
  • 阿里云onedata
  • php实现用户登录
  • 废品损失的核算一定要设废品损失账户吗
  • 坏账准备收不回来怎么办
  • yii2框架漏洞
  • 结存成本怎么计算先进先出法
  • 个体户查账征收个人所得税税率
  • 物权转移的几种情形
  • 卖固定资产计入
  • 织梦模板如何安装
  • mysql百万级数据分页查询优化
  • 钢筋增值税专票几个点
  • 单位购图书怎么入账
  • 契税怎么征
  • 个体户经营所得税率表
  • 代缴社保费怎么做分录
  • 扣员工工作服费用合法吗?
  • 收到以前年度增值税退税账务处理怎么做账
  • 税局预缴增值税选错月期
  • 置换的房产如何操作
  • 房地产行业账务处理和主要税种
  • 未分配利润太多的危害
  • 预缴增值税可以抵扣销项税吗
  • 外币折算差额怎么计算
  • 保险发票入账
  • 库存周转率中销量怎么算
  • 公司不做账会怎样?
  • mybatis报错invalid bound statement
  • win7系统一键还原方法
  • win8怎么设置指纹
  • 文件历史版本功能
  • PHP startup: Unable to load dynamic library错误的错误
  • mac怎么卸载苹果系统
  • linux 判断语句
  • scureapp.exe - scureapp是什么进程 有什么用
  • win10系统如何去除记住密码
  • win7防火墙怎么彻底关闭
  • win8.1系统怎么样
  • linux远程gui
  • 使用linux的电脑
  • 编写高质量代码改善JAVA程序的151个建议
  • 浅析python中SQLAlchemy排序的一个坑
  • junit 原理
  • node使用
  • python获取xhr
  • js如何动态添加class
  • jquery foreach循环
  • 深圳税务局关于个体户开具普通发票有关问题的通知
  • 浙江电子税局
  • 重庆两江新区总工会社会化工作者待遇
  • 在珠海可以做什么生意
  • 杜蕾斯验证真伪扫描
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设