js创建对象的两种方法
先创建对象,然后添加属性和方法
数组字面量法
<script>
var hotel={}
hotel.name='Quay';
hotel.rooms=40;
hotel.booked=25;
hotel.checkAvilablity=function(){
return this.rooms-this.booked
}
alert(hotel.name)
</script>
对象构造函数法
<script>
var hotel=new Object()
hotel.name='Quay';
hotel.rooms=40;
hotel.booked=25;
hotel.checkAvilablity=function(){
return this.rooms-this.booked
}
alert(hotel.name)
</script>
对比
这种后添加属性的方法的情况下,对象构造函数法并无优势。
创建对象的同时创建属性和方法
字面量法
<script>
var hotel={
name:'Quay',
rooms:40,
booked:25,
checkAvilablity:function(){
return this.rooms-this.booked
}
}
alert(hotel.name)
</script>
注意逗号
构造函数法
<script>
function Hotel(name,rooms,booked){
this.name=name;
this.rooms=rooms;
this.booked=booked;
this.checkAvilablity=function(){
return this.rooms-this.booked;
}
}
var quayhotel=new Hotel('Quay',40,25);
alert(quayhotel.name);
var parkhotel =new Hotel('Park',120,77);
alert(parkhotel.name);
</script>
对比
在这种同时创建情形以及需要创建多个类似对象时,构造函数法的优势就体现出来了。
总结
字面量法简单,但是创建多个对象时就麻烦了~而构造函数法可以创建模板,一劳永逸。