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 相关文章推荐
flash 得到自身url参数的代码
Nov 15 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
Mar 24 Javascript
用js的for循环获取radio选中的值
Oct 21 Javascript
Jquery实现自定义tooltip示例代码
Feb 12 Javascript
js中通过父级进行查找定位元素
Jun 15 Javascript
JavaScript输出当前时间Unix时间戳的方法
Apr 06 Javascript
javascript实现简单的鼠标拖动效果实例
Apr 10 Javascript
Javascript常用小技巧汇总
Jun 24 Javascript
jQuery插件Timelinr 实现时间轴特效
Oct 04 Javascript
js 实现一些跨浏览器的事件方法详解及实例
Oct 27 Javascript
angularjs ui-router中路由的二级嵌套
Mar 10 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
Jun 18 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中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
PHP多进程编程实例详解
2017/07/19 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
Javascript学习指南
2014/12/01 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
python matplotlib库的基本使用
2020/09/23 Python
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
奥巴马开学演讲稿
2014/05/15 职场文书
体现团队精神的口号
2014/06/06 职场文书
应届毕业生自荐信
2015/03/04 职场文书
微观世界观后感
2015/06/10 职场文书
道士塔读书笔记
2015/06/30 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis
解析目标检测之IoU
2021/06/26 Python