在JavaScript中有很多创建对象的类的方法。例如:原始方式、工厂方式、构造函数方式、原形方式、混合的构造函数/原型方式、动态原型方法、混合工厂方式。
这里记下”混合的构造函数/原型方式“的使用。
例:
//定义Point对象
function Point(x,y){
this.x=x;
this.y=y;
}
Point.prototype.setXY=function(x,y){
this.x=x;
this.y=y;
}
Point.prototype.toString=function(){
return "x:"+this.x+" y:"+this.y;
}
//调用
var p=new Point(1,2);//实例化一个对象,初始化p,结果p.x=1,p.y=2
p.setXY(4,4);//此时p.x=4,p.y=4
分析
1.采用构造函数定义对象的所有非函数属性x与y
function Point(x,y){
this.x=x;
this.y=y;
}
2.用原型方式定义对象的函数属性(方法)
Point.prototype.setXY=function(x,y){
this.x=x;
this.y=y;
}
3.实例化一个对象,并调用他的一个方法setXY();
var p=new Point(1,2);//实例化一个对象,初始化p,结果p.x=1,p.y=2
p.setXY(4,4);//此时p.x=4,p.y=4
小结
引用w3cschool:
联合使用构造函数和原型方式,就可像用其他程序设计语言一样创建对象。这种概念非常简单,即用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法)。结果是,所有函数都只创建一次,而每个对象都具有自己的对象属性实例。