Javascript原型链及instanceof原理详解

 更新时间:2020年05月25日 10:45:36   作者:千年轮回  
这篇文章主要介绍了Javascript原型链及instanceof原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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);

执行结果

constructor:是原型prototype上的属性,实例上不具有该属性。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Mvc提交表单的四种方法全程详解

    Mvc提交表单的四种方法全程详解

    本文给大家介绍mvc提交表单的四种方法,分别是MVC HtmlHelper方法,传统Form表单Aciton属性提交,Jquery+Ajax 提交表单,MVC Controller控制器和表单参数传递,介绍的非常详细,需要的朋友参考下
    2016-08-08
  • 12个提高JavaScript技能的概念(小结)

    12个提高JavaScript技能的概念(小结)

    这篇文章主要介绍了12个提高JavaScript技能的概念(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 深入浅出ES6新特性之函数默认参数和箭头函数

    深入浅出ES6新特性之函数默认参数和箭头函数

    这篇文章主要介绍了深入浅出ES6新特性之函数默认参数和箭头函数 的相关资料,需要的朋友可以参考下
    2016-08-08
  • JS双击变input框批量修改内容

    JS双击变input框批量修改内容

    这篇文章主要介绍了JS双击变input框批量修改内容的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • Javascript实现div层渐隐效果的方法

    Javascript实现div层渐隐效果的方法

    这篇文章主要介绍了Javascript实现div层渐隐效果的方法,涉及javascript操作页面元素与样式变化的相关技巧,需要的朋友可以参考下
    2015-05-05
  • js消除图片小游戏代码

    js消除图片小游戏代码

    这篇文章主要介绍了js消除图片小游戏代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • stream.js 一个很小、完全独立的Javascript类库

    stream.js 一个很小、完全独立的Javascript类库

    stream.js 是一个很小、完全独立的Javascript类库,它为你提供了一个新的Javascript数据结构:streams
    2011-10-10
  • JavaScript排序算法动画演示效果的实现方法

    JavaScript排序算法动画演示效果的实现方法

    下面小编就为大家带来一篇JavaScript排序算法动画演示效果的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • ES7中await如何优雅的捕获异常详解

    ES7中await如何优雅的捕获异常详解

    异常捕获相信对大家来说并不陌生,下面这篇文章主要给大家介绍了关于ES7中await如何优雅的捕获异常的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 详解小程序不同页面之间通讯的解决方案

    详解小程序不同页面之间通讯的解决方案

    这篇文章主要介绍了详解小程序不同页面之间通讯的解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论