javascript对象创建的五种方式

<html>
<head>
<script>
/*
5.动态原型法
*/	
function  DCar(name,price){
    this.name=name;
    this.price=price;
    if(DCar.initial='undefined'){
    	   DCar.prototype.displayC=function(){alert(this.name+"----"+this.price)};
    	}
     DCar.initial=true;	
}
var c1=new DCar('bmw','30');
c1.displayC();
for(var prop in c1){
	 alert(prop+"----"+c1[prop]);//方法也会显示出来
	}
// 4. 混合的构造函数/原型方式(推荐)
/*
联合使用构造函数和原型方式,就可像使用其他程序设计语言一样创建对象,这种概念非常简单,
即用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法)。
*/

function hCar(sColor){
this.color = sColor; 
this.drivers = new Array('Mike','Sue');
}
hCar.prototype.showColor = function(){
alert(this.color);
}
/*
var hcar1 = new hCar('y color');
var hcar2 = new hCar('r color');
hcar1.drivers.push('Matt');
alert(hcar1.drivers); // output "Mike,Sue,Matt"
alert(hcar2.drivers); // output "Mike,Sue"
*/

/**
*3.使用原型的方式
如何在构造方法中传参数??
*/	
function CarClass(){
	}
CarClass.prototype.name="";
CarClass.prototype.price="";
CarClass.prototype.displayCar=function(){
	   alert(this.name+'---'+this.price);
	}
/*
var c1=new 	CarClass();
c1.name="bmw";
c1.price="30";
c1.displayCar();
var c2=new CarClass();
c2.displayCar();
*/
/**
*2.构造方法模式
1).使用this来定义对象的属性和方法
2).定义方法时直接使用function(){},而不写方法名
3).使用var 定义一个变量。
*/
function Car(name,price){
	this.name=name;
	this.price=price;
	this.displayCar=function(){
		   var a=this.name+"--"+this.price;
		   alert(a);
		}
	}
/*
var c1=new Car("bmw","red"); c1.displayCar();
var c2=new Car("QQ","yellow");c2.displayCar();
delete c1.price;
c1.displayCar();
alert(c1.name+"--"+c2["name"]); //用[]属性名称时必须加引号
*/
/*
1.工厂方法模式
*/
function generateCar(){
	var  car=new Object();
	car.name="bmw";
	//这里写成car.dispalyName(){}是不可以的
	car.dispalyName=function(){
		   alert(this.name);
		};//注意这个分号不可以少
	return car;//注意return 不可以省略,省了之后没有对象返回
	}
/*
var carBmw1=generateCar();
carBmw1.dispalyName(); //bmw
var carBmw2=generateCar();
carBmw2.name="QQ";
carBmw1.dispalyName(); //bmw
carBmw2.dispalyName(); //qq
*/


</script>
<title>
js创建对象的几种方式
</title>
<body>
	<script>

	</script>
</body>
</html>

 

你可能感兴趣的:(JavaScript)