zoukankan      html  css  js  c++  java
  • 前端知识总结--js原型链

    js的原型链听着比较深奥,看着容易晕,梳理一下还是比较容易懂的

    (先简单写下,后续有时间再整理)

    简而言之

    原型链:就是js的对象与对象之间,通过原型组成建立的层层关系,构成了整个链条,称之为原型链  (个人理解,欢迎交流)

    对象

    js中一切皆对象,我们看到的变量、函数、类型,都是顶级对象Object的实例,也就是说他们继承自Object,这种关系就体现在原型链上。

    每个对象都有对应的构造函数,就用最简单的变量举例:

    var a = 1;
    console.log(typeof a); //number
    console.log(a.__proto__);     //Number {0, constructor: ƒ, toExponential: ƒ, toFixed: ƒ, toPrecision: ƒ, …}
    console.log(Number.prototype);  //Number {0, constructor: ƒ, toExponential: ƒ, toFixed: ƒ, toPrecision: ƒ, …}

    你会发现最后2行输出是一致的,怎么回事呢?因为变量a赋值后为Number类型,也就是实例化了Number函数,实例化后会自动生成一个隐形的属性【__proto__】指向了父级对象的【prototype】属性

    原型

    上例中的 prototype 与 __proto__ 存在于js中的各个对象和函数中,就构成了原型链

    • 对象没有 prototype 属性,只有函数有 prototype 原型对象
    • 对象的 __proto__ 属性指向构造函数的 prototype 原型对象
    • 原型对象也是对象,也有__proto__ 属性
    • 直到指向Object.prototype后,到达顶级,Object.prototype.__proto__ 为 null
  • 相关阅读:
    s3c2440 nand flash 拷贝实验
    DE270数字系统设计(4)基于Nios的LCD显示
    DE270数字系统设计实验(3)移位寄存器
    s3c2440启动时的内存拷贝过程分析
    s3c2440基本io/ports led点亮
    (转)X11/Xlib.h:没有该文件或目录
    NAND Flash读写技术
    Http中ContentType的取值讲解
    Json对象和Json字符串的区别
    table() function
  • 原文地址:https://www.cnblogs.com/fanlu/p/10795936.html
Copyright © 2011-2022 走看看