说明: 每一个构造函数上都一个prototype属性,他会指向一个对象,用来挂载一些共享的方法,函数等;
通常把一些不变的方法直接定义在proptotype对象上,来实现共享,避免直接调用构造函数内部的方法,函数而产生新创建的空间,占用内存
实例:
function Fun(name,age) {
this.name = name;
this.age = age;
// this.sing = () => {
// console.log(this.name + '会唱歌');
// }
}
let zs = new Fun('赵四', 20);
Fun.prototype.sing = function() {
console.log('我会唱歌');
}
zs.sing();
二 对象的原型
说明:每个对象上都有一个属性__proto__指向构造函数的prototype原型对象;
__proto__的查找方法为:优先查找使用者本身是否具体sing()方法,有就会执行这个对象上的sing()方法,没有的时候就会去构造函数的原型对象prototype上查找此方法并调用