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 选择器、DOM操作、事件、动画
Nov 25 Javascript
JavaScript 实现鼠标拖动元素实例代码
Feb 24 Javascript
js实现可得到不同颜色值的颜色选择器实例
Feb 28 Javascript
js实现模拟计算器退格键删除文字效果的方法
May 07 Javascript
jQuery满屏焦点图左右滚动特效代码分享
Sep 07 Javascript
JS Canvas定时器模拟动态加载动画
Sep 17 Javascript
AngularJS页面带参跳转及参数解析操作示例
Jun 28 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
Jul 07 Javascript
vue弹窗组件的实现示例代码
Sep 10 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 Javascript
js的新生代垃圾回收知识点总结
Aug 22 Javascript
layui表单提交到后台自动封装到实体类的方法
Sep 12 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
[原创]效率较高的php下读取文本文件的代码
2008/07/02 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
python实现代码统计程序
2019/09/19 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
服务生自我鉴定
2014/01/22 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
大连导游词
2015/02/12 职场文书