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在一段文字中的光标处插入其他文字
Aug 26 Javascript
js 控制下拉菜单刷新的方法
Mar 03 Javascript
jQuery实现提示密码强度的代码
Jul 15 Javascript
jQuery实现标题有打字效果的焦点图代码
Nov 16 Javascript
JavaScript 七大技巧(二)
Dec 13 Javascript
JavaScript核心语法总结(推荐)
Jun 02 Javascript
jQuery实现ajax无刷新分页页码控件
Feb 28 Javascript
微信小程序中进行地图导航功能的实现方法
Jun 29 Javascript
create-react-app 修改为多入口编译的方法
Aug 01 Javascript
基于bootstrap页面渲染的问题解决方法
Aug 09 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
Sep 18 Javascript
vue中可编辑树状表格的实现代码
Oct 31 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利用Mysql锁解决高并发的方法
2018/09/04 PHP
document对象execCommand的command参数介绍
2006/08/01 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
jquery下checked取值问题的解决方法
2012/08/09 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
javascript中字符串的定义示例代码
2013/12/19 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
详解JS函数防抖
2020/06/05 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
2014春晚主持词
2014/03/25 职场文书
小学庆六一主持词
2015/06/30 职场文书
学困生帮扶工作总结
2015/08/13 职场文书