? Java代碼
- /*?
- ???工廠方式---?創(chuàng)建并返回特定類型的對象的?工廠函數(shù)?(?factory?function?)??
- */??
- ???
- ??
- function?createCar(color,doors,mpg){??
- ????var?tempCar?=?new?Object;??
- ????tempCar.color?=?color;??
- ????tempCar.doors?=?doors;??
- ????tempCar.mpg?=?mpg;??
- ????tempCar.showCar?=?function(){??
- ????????alert(this.color?+?"?"?+?this.doors);??
- ????}??
- ????return?tempCar;??
- }???
- ??
- /*?
- ???構造函數(shù)方式---?構造函數(shù)看起來很像工廠函數(shù)??
- */??
- function?Car(color,doors,mpg){??
- ????this.color?=?color;??
- ????this.doors?=?doors;??
- ????this.mpg?=?mpg;??
- ????this.showCar?=?function(){??
- ????????alert(this.color);??
- ????};??
- }????
- /*?
- ???原型方式---?利用了對象的?prototype?屬性,可把它看成創(chuàng)建新對象所依賴的原型??
- */??
- function?Car(color,doors,mpg){??
- ????this.color?=?color;??
- ????this.doors?=?doors;??
- ????this.mpg?=?mpg;??
- ????this.drivers?=?new?Array("nomad","angel");??
- }??
- ??
- Car.prototype.showCar3?=?function(){??
- ????alert(this.color);??
- };???
- ??
- /*?
- ???混合的構造函數(shù)?/原型方式---?用構造函數(shù)定義對象的所有非函數(shù)屬性,用原型方式定義對象的函數(shù)屬性(方法)??
- */??
- function?Car(sColor,?iDoors,?iMpg)?{??
- ????this.color?=?sColor;??
- ????this.doors?=?iDoors;??
- ????this.mpg?=?iMpg;??
- ????this.drivers?=?new?Array("Mike",?"Sue");??
- }??
- ??
- Car.prototype.showColor?=?function?()?{??
- ????alert(this.color);??
- };????
- /*?
- ????動態(tài)原型方法---?在構造函數(shù)內(nèi)定義非函數(shù)屬性,而函數(shù)屬性則利用原型屬性定義。唯一的區(qū)別是賦予對象方法的位置。??
- */??
- 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;??
- ????}??
- }?//該方法使用標志(?_initialized?)來判斷是否已給原型賦予了任何方法。