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基础篇
Nov 13 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
Aug 16 Javascript
JQuery对id中含有特殊字符的转义处理示例
Sep 06 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
Feb 13 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
原生js和jQuery写的网页选项卡特效对比
Apr 27 Javascript
基于Turn.js 实现翻书效果实例解析
Jun 20 Javascript
js实现多图左右切换功能
Aug 04 Javascript
基于js对象,操作属性、方法详解
Aug 11 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
Jul 13 Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 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中获得视频时间总长度的另一种方法
2011/09/15 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
ASP Json Parser修正版
2009/12/06 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
vue.js中过滤器的使用教程
2017/06/08 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python实现逻辑回归的方法示例
2017/05/02 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Python正则表达式学习小例子
2020/03/03 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
艺术系应届生的自我评价
2013/10/19 职场文书
公司综合部的成员自我评价分享
2013/11/05 职场文书
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
升职演讲稿范文
2014/05/23 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
教师个人年度总结
2015/02/11 职场文书
遗愿清单观后感
2015/06/09 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
python中如何对多变量连续赋值
2021/06/03 Python
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js