原型
原型: 去改写对象下面公用的方法或者属性 , 让公用的方法或者属性在内存中存在一份 ( 提高性能 )
原型 : prototype : 要写在构造函数的下面
例如给数组添加方法:
var arr = [1,2,3,4,5];
arr.sum = function(){
var result = 0;
for(var i=0;i<this.length;i++){
result += this[i];
}
return result;
};
alert( arr.sum() ); //15
但是在声明一个数组arr2就不能直接调用这个方法,所以要在arr2上面再写一个方法,这样就造成了浪费。优化的方式是直接在原型(prototype)上面添加sum这个方法。
var arr = [1,2,3,4,5];
var arr2 = [2,2,2,2,2];
Array.prototype.sum = function(){
var result = 0;
for(var i=0;i<this.length;i++){
result += this[i];
}
return result;
};
alert( arr.sum() ); //15
alert( arr2.sum() ); //10
优先级问题
var arr = [];
arr.number = 10;
Array.prototype.number = 20;
alert(arr.number);//10
所以原型优先级较低
prototype运用
function CreatePerson(name){
this.name=name;
}
CreatePerson.prototype.showName=function(){
alert(this.name)
}
var p1=new CreatePerson("小明");
var p2=new CreatePerson("小强");
流程
function 构造函数(){
this.属性
}
构造函数.prototype.方法=function(){
}
var 对象1=new 构造函数();
对象1.方法()