JavaScript 创建对象---寄生构造函数模式

寄生构造函数模式是一种创建对象的方式,它通过创建新对象、实例化属性和方法,然后返回对象。虽然类似构造函数,但其实质更接近工厂模式。在Person构造函数示例中,创建的Person对象拥有name、age属性和sayName方法。由于返回了新对象,这种模式下构造函数返回的对象与构造函数本身或其原型链无关,不能用instanceof来判断对象类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

寄生构造函数模式


寄生构造函数模式的基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回


新创建的对象。但从表面来看,这个函数又很像是典型的构造函数。以例1来进行说明:


例1:

function Person(name,age){
var o=new Object();
o.name=name;
o.age=age;
o.sayName=function(){
alert(this.name);
}
return o;
}
var friend=new Person("Tim",19,"Doctor");
friend.sayName();//Tim


在例1中,Person函数创建了一个新对象,并以相应的属性和方法实例化该对象,然后又返回了这个对象。


除了使用new操作符并把使用的包装函数叫做构造函数之外,这种模式跟工厂模式其实是一模一样的。构


造函数在不返回值的情况下,默认会返回新对象的实例。而通过在构造函数的末尾添加一个return语句,可


以重写调用构造函数返回的值。



注意:关于寄生构造函数模式,其返回的对象与构造函数或者构造函数的原型属性之间没有关系。即


构造函数返回的对象与在构造函数外部创建的对象并没有什么不同。也不能依赖instanceof操作符来确定对象类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值