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效果 slideToggle() 方法(在隐藏和显示之间切换)
Jun 28 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
May 10 Javascript
Jquery实现页面加载时弹出对话框代码
Apr 19 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
Sep 09 Javascript
jQuery中prependTo()方法用法实例
Jan 08 Javascript
jquery实现公告翻滚效果
Feb 27 Javascript
JavaScript设置表单上传时文件个数的方法
Aug 11 Javascript
jQuery事件对象总结
Oct 17 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
详解mpvue实现对苹果X安全区域的适配
Jul 31 Javascript
记录vue做微信自定义分享的一些问题
Sep 12 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
Jul 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求正负数数组中连续元素最大值示例
2014/04/11 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
JS面向对象编程详解
2016/03/06 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
python实现贪吃蛇小游戏
2020/03/21 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
Python初学者常见错误详解
2019/07/02 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
师范生自荐信
2013/10/27 职场文书
美术学专业求职信
2014/07/23 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
学生偷窃检讨书
2014/09/25 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
《绝招》教学反思
2016/02/20 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL