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 相关文章推荐
对google个性主页的拖拽效果的js的完整注释[转]
Apr 10 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
Jan 15 Javascript
js获取url参数值的两种方式
Sep 10 Javascript
SuperSlide标签切换、焦点图多种组合插件
Mar 14 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
Mar 25 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 Javascript
vue cli 全面解析
Feb 28 Javascript
浅谈Vue static 静态资源路径 和 style问题
Nov 07 Javascript
JavaScript实现原型封装轮播图
Dec 27 Javascript
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 Vue.js
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
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
webpack之devtool详解
2018/02/10 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
教大家使用Python SqlAlchemy
2016/02/12 Python
python下10个简单实例代码
2017/11/15 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
pycharm新建一个python工程步骤
2019/07/16 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
个人简历的自荐信
2013/10/23 职场文书
俄语专业毕业生推荐信
2013/10/28 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
庆祝儿童节标语
2014/10/09 职场文书
学生个人总结范文
2015/02/15 职场文书
责任书范本大全
2015/05/11 职场文书