__proto__和prototype区别__proto__和prototype区别

该笔记总结于作者畅coder的博客https://blog.csdn.net/lc237423551/article/details/80010100

  1. __proto__是每一个object都有的一个属性

  2. __proto__属性指向的就是他的构造函数的prototype

  3. 什么是构造函数的prototype?

    当定义一个构造函数的时候, 其实产生了两个东西, 一个是定义的东西(ES6中叫做类)本身, 一个是产生这个东西的构造者. 举个例子🌰, 我要生产月饼, 那么我要做一个模子出来, 造模子的机器就是构造者(月饼.prototype), 那么模子就是图中的Person, 它有一个属性, 叫做prototype, 指向了生产模子的机器, 机器有一个contrutor, 指向了产品(Person)

举个例子帮助理解(采用更好懂的ES6)

class Bravo{
      constructor(name, age){
            this.name = name;
            this.age =  age;
      }
      report(){
            return `Hi, my name is ${this.name} and my age is ${this.age}.`
      }
}

let bravo = Bravo(' Bravo Jack', 24);
console.log( bravo.__proto__ == Bravo.prototype ) // true
posted @ 2020-11-30 19:45  Bravo_Jack  阅读(132)  评论(0编辑  收藏  举报