JavaScript学习之一:采用哪种方式定义类或对象?
2008-08-27 15:01
453 查看
JavaScript中定义类或对象有多种方法:
以创建Car为实例说明。
var oCar = new Object;
oCar.color ="red";
oCar.doors = 4;
oCar.mpg=23;
oCar.showColor = function()
{
alert(this.color);
}
工厂方式构造,例如:
function createCar(sColor,iDoors,iMpg)
{
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors=iDoors;
oTempCar.mpg=iMpg;
oTempCar.showColor = function()
{
al(this.color)
}
return oTempCar;
}
弊端:每个对象都有自己的一个showColor函数。
构造函数方式:
function Car(sColor,iDoors,iMpg)
{
this.color= sColor;
this.doors = i;
this.mpg = iMpg;
this.showColor = function()
{
alert(this.color)
};
}
弊端:构造函数重复生成函数,可以用外部函数重写构造函数(不太懂);
原型方式:该方式利用了prototype属性。
function Car()
{
}
Car.prototype.color = "red";
Car.prototype.doors =4;
Car.prototype.mpg = 23;
Car.prototype.drivers = new Array("Mike","Sue");
Car.prototype.showColor = function()
{
alert(this.color);
}
弊端:给一个实例添加drivers,另一个实例也添加了。
混合的构造函数、原型方式
function Car()
{
}
Car.prototype.color = "red";
Car.prototype.doors =4;
Car.prototype.mpg = 23;
Car.prototype.drivers = new Array("Mike","Sue");
Car.prototype.showColor = function()
{
alert(this.color);
}
解决了两种弊端。
动态原型构造
function Car(sColor,iDoors,iMpg)
{
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","Sue");
if(typeof Car._initialized == "undefined")
{
Car.prototype.showColor = function()
{
alert(this.color)
}
car._initialized = true;
}
}
混合工厂方式。
function Car()
{
var oTempCar = new Object;
oTempCar.color="red";
oTempCar.doors = 4;
oTempCar.mpg = 23;
oTempCar.showColor = function()
{
ale(this.color)
}
return oTempCar;
}
采用哪种方式:
目前流行的是构造函数、原型方式,此外动态原型方式较为流行。
以创建Car为实例说明。
var oCar = new Object;
oCar.color ="red";
oCar.doors = 4;
oCar.mpg=23;
oCar.showColor = function()
{
alert(this.color);
}
工厂方式构造,例如:
function createCar(sColor,iDoors,iMpg)
{
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors=iDoors;
oTempCar.mpg=iMpg;
oTempCar.showColor = function()
{
al(this.color)
}
return oTempCar;
}
弊端:每个对象都有自己的一个showColor函数。
构造函数方式:
function Car(sColor,iDoors,iMpg)
{
this.color= sColor;
this.doors = i;
this.mpg = iMpg;
this.showColor = function()
{
alert(this.color)
};
}
弊端:构造函数重复生成函数,可以用外部函数重写构造函数(不太懂);
原型方式:该方式利用了prototype属性。
function Car()
{
}
Car.prototype.color = "red";
Car.prototype.doors =4;
Car.prototype.mpg = 23;
Car.prototype.drivers = new Array("Mike","Sue");
Car.prototype.showColor = function()
{
alert(this.color);
}
弊端:给一个实例添加drivers,另一个实例也添加了。
混合的构造函数、原型方式
function Car()
{
}
Car.prototype.color = "red";
Car.prototype.doors =4;
Car.prototype.mpg = 23;
Car.prototype.drivers = new Array("Mike","Sue");
Car.prototype.showColor = function()
{
alert(this.color);
}
解决了两种弊端。
动态原型构造
function Car(sColor,iDoors,iMpg)
{
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","Sue");
if(typeof Car._initialized == "undefined")
{
Car.prototype.showColor = function()
{
alert(this.color)
}
car._initialized = true;
}
}
混合工厂方式。
function Car()
{
var oTempCar = new Object;
oTempCar.color="red";
oTempCar.doors = 4;
oTempCar.mpg = 23;
oTempCar.showColor = function()
{
ale(this.color)
}
return oTempCar;
}
采用哪种方式:
目前流行的是构造函数、原型方式,此外动态原型方式较为流行。
相关文章推荐
- JavaScript学习之一:采用哪种方式定义类或对象?
- javascript学习(十五):js中对象的常用的几种创建方式
- 关于JavaScript定义类和对象的几种方式
- JavaScript学习12 JS中定义对象的几种方式
- JavaScript定义类和对象的几种方式
- javaScript中定义类或对象的五种方式
- JavaScript之定义类或对象六种方式
- javaScript中定义类或对象的五种方式
- JavaScript之定义类或对象六种方式
- JavaScript之定义类或对象六种方式
- 韩顺平 javascript教学视频_学习笔记13_类和对象细节_创建对象的几种方式_js对象内存分析
- 学习javascript面向对象 掌握创建对象的9种方式
- JavaScript学习12 JS中定义对象的几种方式
- javascript定义类或对象的四种方式
- JavaScript学习12 JS中定义对象的几种方式
- javascript定义类或对象的几种方式
- JavaScript学习笔记3-JavaScript定义对象的四种方式
- javaScript中定义类或对象的五种方式
- 学习javascript面向对象 掌握创建对象的9种方式
- 关于JavaScript定义类和对象的几种方式