JS高级如何完美创建对象

01.如何创建对象?

创建对象以大括号的方式,如

 如果以学生为例,有年龄‘、有身高,当然有名字,有方法

 这是最基本的对象创建方式。如果这么多学生是不是都要一个对象呢?例如:

 以此类推,重复性代码太多,无法达到。当然优点是简单,方便。那缺点是无法达到量产,也是重复性代码太多。

02.工厂模式

以学生为例,有年龄‘、有身高,当然有名字,有方法

 但是S1和S2的结果都是一样的,无法改变。

 而这个只增加了形参,可以改变学生的信息(如名字,年龄,以及身高等)。

如果在学生对象与老师对象面前是无法判断类型的,

比如

 那么优点是可以量产指定的对象,而且还能节约重复性代码,弊端是通过这个工厂模式创建的对象,没法去检测对应 的类型。

03.构造函数

在JS中,用构造函数代表类,来模拟类,原本不存在类的概念.在其他语言中,如JAVA、python等,都有类。

类:是描述一系列相同类型事物的总称 ,比如人、动物等。

以学生为例,有年龄‘、有身高,当然有名字,有方法                                                                                                                                                                                                                 

 

new的过程做了什么?

第一步:创建一个空对象{}

第二步:将构造函数中的this指向空对象

第三步:将构造函数中所有属性和方法都赋值给空对象

第四步:直接将这个对象返回,并用变量接收

 构造函数:在JS中this的指向性?

this在new的过程中,指向产生的对象。在面向事件编程中,this指向是指事件源。在方法的调用中,调用方法所对的对象。

通过同一个类(构造函数)创建出来的对象,其原型指向共同的对象(原型对象__proto__)

构造原型对象是prototype

 构造函数好处:1.可以量产  2.解决工厂模式无法分辨指定类型问题。同样有弊端:同样的方法,会开辟不同的存储空间,造成内存大量消耗。

04.原型模式创建对象

     将共有的方法写到构造函数的原型中,实例化对象之后,就可以通过原型拿到其共有的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值