- 原型
- 又名: 原型空间 原型对象
- 什么是原型
- 每一个函数天生拥有一个属性,prototype,他的属性值是一个对象
- 我们通常把这个对象叫做这个函数的原型(空间\对象)
- 这个对象中有一个属性叫做constructor,这个属性表示的是当前这个原型是哪个函数的原型
- 每一个对象天生拥有一个属性__proto__(前后两个下划线)
- 这个属性指向自己构造函数的原型
function Person(){}
//向函数的原型(对象)上添加一个属性age
Person.prototype.age = 18
Person.prototype.name = '千峰'
Person.prototype.fn = function (){
console.log('我是添加到abc函数的原型对象上的一个函数')
}
let p1 = new Person()
// console.log(Person.prototype)
console.log(p1.__proto__)
- __proto__属性指向自己构造函数的原理
- 因为p1这个对象的构造函数是Person
- 那么也就是说,p1.__proto__实际指向的就是Person这个函数的原理