1、定义类或对象
1.1 混合的构造函数/原型方法
用构造函数定义对象的所有非函数属性,类似于Java的构造方法。用原型方法定义对象的函数属性(方法)。这种方法是使用比较广泛的定义类或对象的方法。
1 //混合的构造函数/原型方式 2 //用构造函数定义对象的的所有非函数属性 3 function Car(sColor, iDoors, iMpg){ 4 this.color = sColor; 5 this.doors = iDoors; 6 this.mpg = iMpg; 7 this.drivers = new Array("Mike", "Sue"); 8 } 9 10 //用原型方法定义对象的函数属性(方法),只创建showColor()函数的一个实例,不会浪费内存空间 11 Car.prototype.showColor = function(){ 12 alert(this.color); 13 } 14 15 var oCar1 = new Car("red", 4, 23); 16 var oCar2 = new Car("blue", 3, 25); 17 18 //oCar1,oCar2属性的值互不影响,又能共用showColor()函数的一个实例 19 oCar1.drivers.push("Matt"); 20 document.write(oCar1.color + "," + oCar1.doors + "," + 21 oCar1.mpg + "," + oCar1.drivers + "</br>"); //输出:red,4,23,Mike,Sue,Matt 22 document.write(oCar2.color + "," + oCar2.doors + "," + 23 oCar2.mpg + "," + oCar2.drivers + "</br>"); //输出:blue,3,25,Mike,Sue
//混合的构造函数/原型方式
//用构造函数定义对象的的所有非函数属性
function Car(sColor, iDoors, iMpg){
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike", "Sue");
}
//用原型方法定义对象的函数属性(方法),只创建showColor()函数的一个实例,不会浪费内存空间
Car.prototype.showColor = function(){
alert(this.color);
}
var oCar1 = new Car("red", 4, 23);
var oCar2 = new Car("blue", 3, 25);
//oCar1,oCar2属性的值互不影响,又能共用showColor()函数的一个实例
oCar1.drivers.push("Matt");
document.write(oCar1.color + "," + oCar1.doors + "," +
oCar1.mpg + "," + oCar1.drivers + "</br>"); //输出:red,4,23,Mike,Sue,Matt
document.write(oCar2.color + "," + oCar2.doors + "," +
oCar2.mpg + "," + oCar2.drivers + "</br>"); //输出:blue,3,25,Mike,Sue