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 相关文章推荐
浅谈JavaScript编程语言的编码规范
Oct 21 Javascript
提高javascript效率 一次判断,而不要次次判断
Mar 30 Javascript
使用js操作cookie的一点小收获分享
Sep 03 Javascript
关于JavaScript限制字数的输入框的那些事
Aug 14 Javascript
vuex实现简易计数器
Oct 27 Javascript
js放大镜放大购物图片效果
Jan 18 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
Jan 22 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
Jan 10 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
Nov 25 Javascript
Web安全之XSS攻击与防御小结
Dec 13 Javascript
JS实现数组删除指定元素功能示例
Jun 05 Javascript
微信用户访问小程序的登录过程详解
Sep 20 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中显示格式化的用户输入
2006/10/09 PHP
PHP 源代码压缩小工具
2009/12/22 PHP
php全排列递归算法代码
2012/10/09 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
python实现自动登录
2018/09/17 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
Python socket服务常用操作代码实例
2020/06/22 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
美国羊皮公司:Overland
2018/01/15 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
自我鉴定范文
2013/11/10 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
golang如何去除多余空白字符(含制表符)
2021/04/25 Golang
JUnit5常用注解的使用
2021/07/02 Java/Android