原型对象的那些事

93 阅读1分钟

什么原型对象

  • 每一个构造函数都有一个prototype的属性, 这个属性的值是一个对象,这个对象就叫做构造函数的原型对象

  • 一般的建议将构造函数的成员属性绑定在原型对象prototype上,因为原型对象prototype身上的属性默认可以通过实例对象访问到

  • 这用做可以保证在每次通过new关键字创建实例对象的时候,这些方法不会被重复在内存中创建

原型对象是来解决什么问题

  • 内存浪费

  • 变量污染

      this.name = name
      this.age = age
      this.eat = function () {
        console.log('吃东西');
      }
    }
    let p1 = new Person('张三', 20)
    let p2 = new Person('李四', 25)
    //虽然p1和p2的eat函数执行的相同时候的,但是他们是不同的一个函数
    //原因:调用构造函数的时候,每调用一次就会执行一次function,
   //就会在堆中开辟一个新空间.虽然代码相同,
    但是他们不是同一个堆空间,  
    所以会造成内存污染,而原型对象正好可以解决

Snipaste_2022-04-30_23-58-43.png

原型对象的三个相关属性

  • 构造函数: prototype指向这个原型

  • 原型对象: constructor指向构造函数

  • 实例对象: __proto__指向原型对象

Snipaste_2022-05-01_00-25-31.png

每日鸡汤

1、再苦再累,只要坚持往前走,属于你的风景终会出现

2、再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。

3、不要等待机会,而要创造机会。

u=407325379,1209958275&fm=253&fmt=auto&app=138&f=JPEG.webp