标签:javascript 创建对象
在JavaScript中创建对象主要就是用以下三种语句:
现在,我们就牛刀小试,来创建一个对象
var man=new Object();//创建Object对象的实例:man man.name='Mr.Q';//man对象的name属性 man.sex=30;//man对象的name man.work=function(){ return this.name+' is working.'; }; alert(man instanceof Object);//true 是Object对象的实例 alert(man.work());//Mr.Q is working.
如果要创建和以上对象类似的对象怎么办?
方案一:直接赋值;缺点:会覆盖原来对象
var woman=man; woman.name='Ms.L';//man对象的name属性 woman.sex=21;//man对象的name woman.work=function(){ return this.name+' is working.'; }; alert(woman.name);//Ms.L 会将man对象的name属性覆盖掉
方案二:用相同的方式再实例化一个对象;缺点:会产生大量重复代码
var woman=new Object();//创建Object对象的实例:man woman.name='Ms.L';//man对象的name属性 woman.sex=21;//man对象的name woman.work=function(){ return this.name+' is working.'; }; alert(woman.work());//Mr.Q is working.
优化一:工厂模式:解决实例化大量类似对象产生重复代码问题
function createobject(name,sex){ var obj=new Object(); obj.name=name; obj.sex=sex; obj.work=function(){ return this.name+' is working'; }; return obj; } var man=createobject('Mr.Q',30); var woman=createobject('Ms.L',21); alert(man.work()); alert(woman.work());
function Person(name,sex){//人类 this.name=name; this.sex=sex; this.work=function(){ return this.name+' is working'; }; } var man=new Person('Mr.Q','男'); var woman=new Person('Ms.L','女'); alert(man instanceof Object); alert(man instanceof Person); function ET(name,sex){//外星人 this.name=name; this.sex=sex; this.work=function(){ return this.name+' is working'; }; } var marsman=new ET('Mr.Q','男'); alert(marsman instanceof ET);//true alert(marsman instanceof Person);//false mrasman是ET对象的实例,而不是Person对象的实例
标签:javascript 创建对象
原文地址:http://blog.csdn.net/u010924834/article/details/40479465