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 第二课 操作包装集元素代码
Mar 14 Javascript
niceTitle 基于jquery的超链接提示插件
May 31 Javascript
纯js简单日历实现代码
Oct 05 Javascript
jQuery之字体大小的设置方法
Feb 27 Javascript
jquery.mobile 共同布局遇到的问题小结
Feb 10 Javascript
解析javascript中鼠标滚轮事件
May 26 Javascript
Bootstrap每天必学之滚动监听
Mar 16 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
Mar 31 Javascript
微信小程序实现页面浮动导航
Jan 28 Javascript
微信小程序音乐播放器开发
Nov 20 Javascript
解决removeEventListener 无法清除监听的问题
Oct 30 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
Email+URL的判断和自动转换函数
2006/10/09 PHP
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php生成图片缩略图的方法
2015/04/07 PHP
php类常量用法实例分析
2015/07/09 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
简单介绍Ruby中的CGI编程
2015/04/10 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
Python骚操作之动态定义函数
2019/03/26 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
线程同步的方法
2016/11/23 面试题
医生自荐信
2013/10/11 职场文书
找工作最新求职信
2013/12/22 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
体育教师个人总结
2015/02/09 职场文书
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript