工厂模式
function ren(name,sex,age){ var obj=new Object(); obj._name=name; obj._sex=sex; obj._age=age; obj.fa=function(){ alert(this._name); } return obj; } var p1=ren('wang1','男1',20); var p2=ren('wang2','男2',30); var p3=ren('wang3','男3',40); p1.fa(); alert(p1._name+' '+p1._sex+' '+p1._age+' ');
构造函数式
function Per(name,age,sex){ this.name=name; this.age=age; this.sex=sex; this.fa=function(){ alert(this.name); } } //开始构造一个函数,使用new关键字,传递参数,返回对象 var p1=new Per('w1',20,'男'); alert(p1.name); alert(p1.age); p1.fa(); //构造器是否属于Per alert(p1.constructor==Per); alert(p1 instanceof Per); alert(p1 instanceof Object); //创造对象的方式 //当作构造函数去使用 var p2=new Per('w1',20,'男'); //作为普通函数去执行 Per('w2',22,'女'); //相当于window.Per('w2',22,'女'),在全局环境里定义属性并复制,直接定义在window上 //在另一个对象的作用域中调用 var o=new Object(); Per.call(o,'w1111',20,'男'); alert(o.name);