每个函数中都有一个prototype(原型)属性,它是一个指针,指向一个对象。
按照原型定义,prototype通过调用构造函数而创建的对象实例的原型对象。使用原型对象的好处是可以让所有实例共享它包含的属性和方法。
代码例子:
function Person(){}
Person.prototype.name="Nicholas";
Person.prototype.age=29;
Person.prototype.job="software Engineer";
Person.prototype.sayName=function(){
console.log(this.name);
};
var person1=new Person();
person1.sayName(); //Nicholas
var person2=new Person();
person2.sayName(); //Nicholas
person1.sayName() == person2.sayName() //true
原生模型也存在一个问题
就是这个元素对象的属性很多实例都可以共享,当一个实例修改其中的属性的时候,其他属性也跟随着修改。