什么原型对象
-
每一个构造函数都有一个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,
//就会在堆中开辟一个新空间.虽然代码相同,
但是他们不是同一个堆空间,
所以会造成内存污染,而原型对象正好可以解决
原型对象的三个相关属性
-
构造函数: prototype指向这个原型
-
原型对象: constructor指向构造函数
-
实例对象: __proto__指向原型对象
每日鸡汤
1、再苦再累,只要坚持往前走,属于你的风景终会出现
2、再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。
3、不要等待机会,而要创造机会。