- 原型作用
- 为什么要这样做?
- 构造函数的原型上的方法或者属性,在每一个实例化对象中都能访问
function Person(name,age){
this.name = name,
this.age = age
}
Person.prototype.fn = function (){
console.log('我是添加到Person函数的原型对象上的一个函数')
}
let p1 = new Person('QF001',18)
console.log(p1.__proto__ )
let p2 = new Person('QF002',18)
console.log(p2.__proto__ )
- 对象的访问规则
- 访问对象的某一个属性时,会现在对象本身去查找,找到就直接使用,如果没有找到
- 那么会去对象的__proto__中去查找,找到就使用,如果没有找到
- 那么会去这个对象(原型)的__proto__查找
- 直到查找到JS的顶层对象Object.protype,如果还没找到就不再向上查找
console.log(p1)
console.log(p1.fn)
p1.fn()
console.log(p1.abc)