zoukankan      html  css  js  c++  java
  • 3分钟简单了解 prototype 和 __proto__

    关于prototype

    1. 所有的函数都会有一个prototype属性,属性值是一个普通对象;

    2. 当我们去new一个构造函数的实例时,构造函数的原型对象(prototype)会被赋值给它实例的[[Prototype]]属性上;

    3. prototype可被称为“显式原型”。

    关于__proto__

    1. 首先它未被ECMAScript标准化,但却被被大多数浏览器厂商所支持;

    2. 所有对象(null,undefined除外)都具有__proto__属性;

    3. 对象的__proto__属性指向它的构造器的prototype属性;

    4. __proto__ 可被称为“隐式原型”;

    5. ES2015对其进行了标准化。

    关于两者

     1 // 普通函数
     2 function func() {}
     3 
     4 func.prototype // { constructor: function func(), ... }
     5 
     6 // 构造函数
     7 function F() {}
     8 
     9 F.prototype // { constructor: function func(), ... }
    10 
    11 // 实例测试
    12 var f = new F()
    13 
    14 f.__proto__ // { constructor: function func(), ... }
    15 
    16 f.__proto__ === F.prototype // true
    17 
    18 // ES2015标准化[[Prototype]]属性,Object.getPrototypeOf/Object.setPrototypeOf
    19 Object.getPrototypeOf(f) === F.prototype
  • 相关阅读:
    js 注意
    JS学习大作业-Excel
    js继承
    转载:margin外边距合并问题以及解决方式
    CSS属性选择器和部分伪类
    HTML使用CSS样式的方法
    link元素 rel src href属性
    【2020.01.06】SDN大作业
    【2019.12.11】SDN上机第7次作业
    【2019.12.04】SDN上机第6次作业
  • 原文地址:https://www.cnblogs.com/fanqshun/p/9976404.html
Copyright © 2011-2022 走看看