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
  • 相关阅读:
    string的sizeof
    计算程序运行时间
    sleep所在头文件
    Mysql复制表结构、表数据
    UIView属性
    UITextView
    UITextField属性
    UISwitch属性
    UISlide属性
    UISegment属性
  • 原文地址:https://www.cnblogs.com/fanqshun/p/9976404.html
Copyright © 2011-2022 走看看