zoukankan      html  css  js  c++  java
  • 一张图弄懂js原型和原型链

    前言

    JavaScript的原型和原型链是面试的时候经常被问及到的问题,考察了我们对JavaScript的基础掌握情况,今天我们在这里用一张图来梳理下其中的知识点。

    下面我来引入这张非常经典的图,我也是亲手画了下,大家也可以自己动手去画,对理解原型及原型链有很大的帮助。

    这张图详细的描述了构造函数FunctionObject以及它们实例之间的原型关系。

    大致总结下就是如下几点:

    大致总结一下就是:

    1. Object是作为众多new出来的实例的基类 , function Object(){ [ native code ] }

    2. Function是作为众多function出来的函数的基类 ,function Function(){ [ native code ] }

    3. 构造函数的__proto__(包括FunctionObject)都指向Function.prototype

    4. 原型对象的__proto__都指向Object.prototype

    5. Object.prototype.__proto__指向null

    6. 所有的对象(对象,函数)都有__proto__属性(隐式原型),指向构造该对象的构造函数的原型。

    7. 只有函数function才具有prototype属性(显式原型)。这个属性是一个指针,指向一个对象,这个对象的用途就是包含所有实例共享的属性和方法(我们把这个对象叫做原型对象)。原型对象也有一个属性,叫做constructor,这个属性包含了一个指针,指回原构造函数。

    弄清楚以上几点,再结合自己手画这张图,我相信大家都能明白原型和原型链了。

  • 相关阅读:
    Databases Questions & Answers
    SQL语句
    常见的数据库基础面试题大全
    关于GET POST
    经常遇到的浏览器兼容性问题
    关于JavaScript中apply与call的用法意义及区别(转)
    js闭包的用途
    深入理解js闭包
    undefined与null的区别
    HeapSort快速排序
  • 原文地址:https://www.cnblogs.com/dreamcc/p/10823668.html
Copyright © 2011-2022 走看看