instanceof是干什么的?

instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

只要遍历实例对象的原型,看看是否跟构造函数的prototype相等,即可实现。

function instance_of (obj, Fn) {// 判断传入的构造函数是不是函数类型if (typeof Fn !== 'function') {throw new TypeError('不是函数');}// 实例不是对象, 返回falseif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {return false;}// 取 Fn的prototype原型比较let proto = Fn.prototype;while(obj.__proto__) {// 当实例的隐式原型__proto__ 全等于 Fn的显式原型 prototype,返回trueif (obj.__proto__ === proto) return true;// 否则,继续向原型链上游移动obj = obj.__proto__;}return false;
}

js实现instanceof+实现原理相关推荐

  1. JS原型链与instanceof底层原理

    转载自  JS原型链与instanceof底层原理 一.问题: instanceof 可以判断一个引用是否属于某构造函数: 另外,还可以在继承关系中用来判断一个实例是否属于它的父类型. 老师说:ins ...

  2. JS Promise的实现原理

    转载自   JS Promise的实现原理 在前端开发过程中,会经常使用到 Promise 模式,可以使异步代码看起来如同步般清新易读,从而从回调地狱中解脱出来.ES6中 已原生支持 Promise, ...

  3. [js] axios拦截器原理是什么?

    [js] axios拦截器原理是什么? 拦截器原理其实就是用use添加用户自定义的函数到拦截器的数组中. 最后把他们放在拦截器请求前,请求后.组成promise链式调用. // 组成`Promise` ...

  4. JS异步:执行原理与回调

    JS异步:执行原理与回调 一.JS异步的执行原理 二.JS异步中的回调 一.JS异步的执行原理   我们知道JavaScript是单线程的,而浏览器是多线程的.单线程执行任务需要一个个排队进行,假如一 ...

  5. WPS加载项是如何实现调用业务系统JS的 WPS通信原理

    WPS加载项是如何实现调用业务系统JS的 WPS通信原理 wpssdk 一.业务系统调用WPS原理 二.WPS调用业务系统JS的原理 End 写在前面:JSAPI金山办公官方群 756432763 欢 ...

  6. 数据挖掘与分析 - 用JS实现推荐系统的原理与开发

    数据挖掘与分析 - 推荐系统的原理与开发 图表一览 试想一个推荐系统的应用场景 分析应用场景的需求 开始开发推荐图书系统 常规解决想法 曼哈顿距离 欧氏距离 闵可夫斯基距离 皮尔逊相关系数 余弦相似度 ...

  7. JSON和JSONP【JS+AJAX跨域原理和实现】

    前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socke ...

  8. Vue.js 深入响应式原理

    深入响应式原理 现在是时候深入一下了!Vue 最独特的特性之一,是其非侵入性的响应式系统.数据模型仅仅是普通的 JavaScript 对象.而当你修改它们时,视图会进行更新.这使得状态管理非常简单直接 ...

  9. JS双向数据绑定的原理介绍

    1.双向数据绑定的原理:属性拦截 2.属性拦截实现方式 : 使用Object.defineProperty()将对象的属性变成访问器属性. 3.如果对访问器属性不是很了解的小伙伴可以看一下这一篇文章哈 ...

最新文章

  1. 免费教材丨第52期:人工智能(复杂问题求解的结构和策略)、人工智能哲学
  2. 14个顶级开发社区 [程序员]
  3. Linux--缺页中断和交换技术
  4. 小图标文字对齐的终极解决方案
  5. 正则表达式,VI,SED及shell编程2010-12-05
  6. 国内做 3D 渲染和游戏引擎的码农们都在哪里获取技术信息?
  7. 基于平面 marker 的 Bundle Adjustmet
  8. 使用 JNA 模拟C语言结构体的完整源代码
  9. Mac 有道词典 无法取词、划词
  10. Excel 快速填充序号
  11. 牛牛现在有n张扑克牌-字符串
  12. 极值理论(一):极大值极限分布
  13. 初等矩阵的逆矩阵如何“一眼就能看出”
  14. Delphi创建COM组件并分别用Delphi和html调用该组件的简单实例
  15. Docker部署及常见问题
  16. 态℃ |一条毛巾在拼多多的新消费奇遇记
  17. PostgreSQL 按指定顺序排序
  18. 华为虚拟化CSS与H3C虚拟化 IRF2技术对比
  19. C#学习笔记——sin函数
  20. 国内几个免费的Git私有仓库

热门文章

  1. 完全二叉树最后一个非叶子节点
  2. 旗帜软件工作室2021年年会总结
  3. yolov5原理到实现
  4. python教程1009python教程_GitHub - gyl1009/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
  5. 高并发和大流量解决方案
  6. 中心极限与大数定理律的关系_麦克斯韦速度分布律与气体分子碰壁数的推导
  7. 网络带宽和吞吐量throughput的关系
  8. String字符串GBK转UTF8
  9. 止盈快回撤小但容易错过行情,怎样处理才能恰到好处?
  10. 贪心——绝对值不等式——货仓选址