一、原型模式:
这个只存在于函数中。
我们在创建的每一个函数中都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以有特定类型
的所有实例共享的属性和方法。按字面的意思:prototype就是通过调用构造函数而创建的那个对象实例的原型对象。
好处:可以让所有特定类型对象实例共享它所包含的属性和方法。
注意:prototype属性只存在于函数中,而不是函数的实例对象上。实例对象只是继承原型对象相应的属性和方法。在写构造函数的时候,不要通过变量来定义对象本身(函数也是对象)的prototype,这样失去了原型对象的含义(每次调用都会去覆盖这些值。)
<script>
function People(){
People.prototype.name='ok';
People.prototype.age='';
People.prototype.sayHI=function(){
console.log(this.name);
}
};
var p1=new people();
var p2=new people();
console.log(p1.age);
console.log(p2.age);
console.log(p1.__proto__)
console.log(people.prototype.constructor)
</script>
输出: