JS创建对象

常用的创建对象方法有:Object构造函数,对象字面量,构造函数模式,原型模式,组合使用构造函数和原型模式

Object构造函数和对象字面量

创建对象的方法如下:

//用Object构造函数创造对象
var person1=new Object();
person1.name="Jack";
person1.age=1;
person1.sayname=function(){alert(person1.name+":"+person1.age);};
person1.sayname();

//用对象字面量创建对象
var person2={
  name:"Tom",
  age:2,
  sayname:function(){
    alert(person2.name+":"+person2.age);
  }
};
person2.sayname();

虽然上述两种方法可以用来创建单个对象,但这些方式有明显的缺点:使用同一个接口创建很多对象,就会产生大量的重复代码,即不利于复用。

构造函数模式

解决了重复创建同一类型对象的问题,其创造函数方法如下:

//定义构造函数创建对象
function Person(name,age){
  this.name=name;
  this.age=age;
  this.sayname=function(){
    alert(this.name+":"+this.age);
  }
}
var person3=new Person("Lily",3);
person3.sayname();

以这种方式创建函数,会导致不同的作用域链和标示符解释,如上述sayname函数在每个实例中都是不一样的,每个实例中的函数都有独立的内存空间,不利于复用。

原型模式

//原型模式创建函数
function Person4(){}
Person4.prototype.name="Lucy";
Person4.prototype.age=4;
Person4.prototype.sayName=function(){alert(this.name+":"+this.age);};
var person4=new Person4();
person4.sayName();

原型模式解决了复用问题,但在构造函数指向的原型对象中的函数和属性都是共享的。
因此最常用的创建对象方法为

组合使用构造函数和原型模式

将属性定义在构造函数内,方法函数定义在原型中,这样每个实例都将拥有自己的作用域,行为方法也能达到复用的效果。
//组合使用构造函数和原型模式
function Person5(name,age){
  this.name=name;
  this.age=age;
  this.sayname=function(){
    alert(this.name+":"+this.age);
  }
}
Person5.prototype={
  constructor:Person5,
  sayName:function(){
    alert(this.name+":"+this.age);
  }
}
var person5=new Person5("JIMMY",5);
person5.sayName();


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值