Javascript原型链及instanceof原理详解


Posted in Javascript onMay 25, 2020

instanceof:用来判断实例是否是属于某个对象,这个判断依据是什么呢?

首先,了解一下javascript中的原型继承的基础知识:

javascript中的对象都有一个__proto__属性,这个是对象的隐式原型,指向该对象的父对象的原型(prototype)。显式的原型对象使用prototype,但是Object.prototype.proto=null;

判断某个对象a是否属于某个类A的实例,可以通过搜索原型链。

实例对象属性查找顺序是:实例对象内部---->构造函数原型链---->实例对象父对象的原型链。

//继承机制
  function A(){
  }
  A.prototype.name='licui';

  function B(){

  }
  B.prototype = new A();

  var a = new A();
  var b = new B();
  //b.name = 'hello';

  console.log('A:',A);
  console.log('B:',B);
  console.log('a:',a);
  console.log('b:',b);

  console.log('A.prototype',A.prototype);
  console.log('B.prototype',B.prototype);
  console.log('a._proto_',a.__proto__);
  console.log('b._proto_',b.__proto__);

  console.log('a instanceof A:',a instanceof A);
  console.log('a instanceof Object:',a instanceof Object);
  console.log('b instanceof B:',b instanceof B);
  console.log('b instanceof A:',b instanceof A);
  console.log('b instanceof Object:',b instanceof Object);

执行结果

Javascript原型链及instanceof原理详解

constructor:是原型prototype上的属性,实例上不具有该属性。

Javascript原型链及instanceof原理详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery ajax中使用jsonp的限制解决方法
Nov 22 Javascript
jquery实现搜索框常见效果的方法
Jan 22 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
Feb 25 Javascript
jQuery遍历DOM元素与节点方法详解
Apr 14 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
Jun 06 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
Sep 20 Javascript
JavaScript中使用参数个数实现重载功能
Sep 01 Javascript
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 Javascript
Bootstrap Table 搜索框和查询功能
Nov 30 Javascript
浅谈react-router@4.0 使用方法和源码分析
Jun 04 Javascript
vue 页面回退mounted函数不执行的解决方案
Jul 26 Javascript
小程序实现点击tab切换左右滑动
Nov 16 Javascript
Node登录权限验证token验证实现的方法示例
May 25 #Javascript
详解Node.js使用token进行认证的简单示例
May 25 #Javascript
基于redis的小程序登录实现方法流程分析
May 25 #Javascript
JSONP解决JS跨域问题的实现
May 25 #Javascript
JS实现时间校验的代码
May 25 #Javascript
使用Typescript和ES模块发布Node模块的方法
May 25 #Javascript
js 动态校验开始结束时间的实现代码
May 25 #Javascript
You might like
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
PHP安装全攻略:APACHE
2006/10/09 PHP
PHP的explode和implode的使用说明
2011/07/17 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
JavaScript SHA512&SHA256加密算法详解
2015/08/11 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
python 简单的绘图工具turtle使用详解
2017/06/21 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
python打开windows应用程序的实例
2019/06/28 Python
python绘制直方图和密度图的实例
2019/07/08 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
python各层级目录下import方法代码实例
2020/01/20 Python
python如何查看网页代码
2020/06/07 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
社区服务活动总结
2014/05/07 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
结对共建协议书
2014/08/20 职场文书
招标授权委托书样本
2014/09/23 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
甲午风云观后感
2015/06/02 职场文书