javascript工厂方式、构造函数、原型方式

本文介绍了JavaScript中四种创建对象的方式:工厂方式、构造函数、原型方式和混合方式,并详细阐述了每种方式的特点及如何解决各自存在的问题。

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

一、工厂方式可以为一个对象,创建多个实例。

 

上面的代码,创建car对象,并赋予属性和方法。执行代码后就可以使用对象,问题是我们经常需要重复、创建多个实例。

 

解决此问题的方法是:创建能够返回特定类型的对象的工厂函数。

 

执行代码,将创建2个car对象。

 

上面的代码仍存在问题:为每个对象创建独立的函数版本,但实际上他们的函数功能是一样的,无需独立创建。

解决方法:创建外部函数重写工厂函数。

 

 

二、构造函数

在构造函数内部无需创建对象,二是使用this关键字。使用new调用构造函数。

 

 

与工厂方式相同,构造函数也存在无法共享方法的问题。解决方法仍然是使用外部函数。

 

三、原型方式

该方式利用了对象的prototype属性,可以把它看成创建新对象所依赖的原型。

 

所有的属性和方法都被直接赋予创建对象所依赖的原型prototype属性。

 

原型方式很好的解决了构造函数方式、工厂方式的无法共享方法问题,但却出现一个新问题:无法传递参数,初始化属性。

 

四、混合方式

看到三者的优缺点,唯有混合使用它们。

 

 

1、使用构造函数方式,解决了传递参数的问题。

2、使用原型方式解决了共享函数指向同一函数指针的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值