1.已有对象扩充自己的对象
var object = new Object();
object.name="guohao";
object.sayName = function(name) {
this.name = name;
alert(this.name);
}
缺点:一次只能创建出一个对象,不能产生创建对象的一个模板
2.工厂方式创建对象
function createObject(name,password) {
var object = new Object();
object.name=name;
object.password=password;
object.getName=function()
return this.name;
}
object.getPassword=function() {
return this.password;
}
return object;
}
var o1 =createObject("zhangsoan","123");
var o2 = createObject("lis","134");
缺点:这种写法生成每个对象都有一份方法,浪费内存
3.构造函数方式
function object(name,password) {
new Object();
this.name = name;
this.password = password;
this.getName = function() {
return this.name;
}
this.getPassword = function() {
return this.password;
}
}
var o1 = new object("zhangsan",134);
var o2 = new object("lisi",466);
4.原型构造方式
function Person() {
}
Person.prototype.name="zhangsona";
Person.prototype.password="123";
Person.prototype.getInfo=function() {
alert(this.name+this.password);
}
var p1 = new Person();
p1.name="lisi";
var p2 = new Person();
缺点:1.不能传参数为属性赋初值2.所有的对象共用一个引用类型的数据