首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS魔法堂:再识instanceof

    一、Breif                                  大家都知道instanceof一般就是用来检查A对象是否为B类或子类的实例。...那问题是JS中没有类的概念更没有类继承的概念(虽然有构造函数),那么instanceof到底是怎样判断A对象是B构造函数的实例呢?本文将对此作分析记录,以便日后查阅。...ShiftExpression的实际值(GetValue(Evaluate(ShiftExpression)))必须为[object Function],否则就抛TypeError异常; 2. instanceof...上面的定义看得不太明白,我们把它翻译成JS的实现吧 // IE5.5~9下,由于无法通过__proto__访问对象的Internal Property [[Prototype]],因此该方法无效 ;(function...五 、Conclusion                           之前看了很多讲述instanceof的文章但始终对它理解得不透彻,看来还是看Spec比较实在。

    85590

    JS 原生方法原理探究(五):如何实现 instanceof

    这是JS 原生方法原理探究系列的第五篇文章。本文会介绍如何实现 instanceof 方法。 typeof 操作符返回一个表示数据类型的字符串,它可以应付常规场景下的数据类型判断。...但使用 instanceof 之后,就一目了然了: console.log(obj1 instanceof F1) // true console.log(obj1 instanceof F2)...// false console.log(obj2 instanceof F2) // true 根据 MDN 的描述: instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上...instanceof 运算符有两个操作数,左操作数通常是一个实例对象,它的类型可以是对象或者函数,也可以是基本类型(这种情况下不会报错,但总返回 false),右操作数通常是一个可调用的(callable...那么 instanceof 的实现原理是什么呢?

    1.8K20

    JS手撕(一)    类型判断、instanceof、数组去重

    JS手撕(一)    类型判断、instanceof、数组去重 前言 看这篇文章的小伙伴,建议看完每一节,都尝试自己手撕一遍,最好就是弄懂原理后再开始手撕(不要边看边手撕,会产生依赖),本人就是看别人的文章后手撕的...(因为手撕题型记不住,还有一些大佬有很有意思的解法) 类型判断 有用过JS一段时间的小伙伴应该对typeof比较属性,我们需要进行类型判断的时候一般都会先想到它。...上面已经有小小的提到的typeof,那么当然不能拉下它的好兄弟instanceof啦。...开始手撕之前,先复习一下instanceof究竟是啥。 MDN上的介绍已经很简单易懂了:instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上。...上面的代码还有有一些大问题,因为**instanceof是用来检测实例对象的**,所以我们还得去掉检测基本数据类型,如123 instanceof Number;得到的结果是false function

    1.7K10

    LSP之instanceof

    invoiceCode; this.invoiceNo = invoiceNo; this.paperDrewDate = paperDrewDate; if (checkCode instanceof...但代码里面用到了instanceof,当用到这个关键字,而且是在抽象实体时,基本上可以断定是抽象的层次不够, 可能违背了LSP LSP原则很明了:子类可以随时替换父类;这儿用了instanceof,说明有不可替换的成份在...getVerifyCheckCode(); 这儿有个疑问,为什么不在构建发票前,把verifyCheckCode转成normalCheckCode,而不是到Invoice的构建内部再转化,那也就没有instanceof...每一种CheckCode都有各自不同的行为 ---- 一般通过instanceof判断子类型时,都有不满足LSP的嫌疑;在这个场景中也差不多,但抓住了这一点,重新思考一下,类层次与结构行为可以设计得更合理

    63030

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券