JS中的构造函数

2019-03-20  本文已影响0人  印第安老斑鸠_333

想生成10个相同对象,每个对象100条属性,可以吗?可以!怎么做呢?写这样10个对象太累啦,必须用for循环啊。用for循环可以吗?可以!那写100,1000,个会怎样呢?每个对象里面有这么多属性,内存受的了么?那怎么办?好办呀,需要知道,对象是存在堆内存里的,它赋值给变量只是传了一个地址。

所以,生成以个模板就好了呀,模板???就是构造函数。

①,每个对象都有一个隐藏属性 __proto__,指向原型对象(xxx.prototype),并继承原型对象的属性和方法

②,new一个构造函数,就会生成一个对象实例,这个实例的原型对象就是这个构造函数的prototype属性

③,假如要生成100个对象,每个对象有100条 键值相同属性,而且有98条相同的值,那就把这98条属性写进构造函数的prototype属性。剩下两条写进构造函数,属性值别写死,就当做参数传进来,这样生成100个对象,每个对象只有两条属性,剩下98条都在原型对象里,__proto__属性存了prototype的地址,用哪个属性了就去找。

PS:

构造函数和模板有啥关系?没看出来啊?

生成的100个对象他们相似么?废话,当然相似了,有98条属性可以共用!!这些对象怎么来的呢?new一个构造函数造出来的啊!!这98条属性是谁的呢?是构造函数的prototype属性里面的呀!!那你说构造函数是模板吗??.......

说了半天构造函数跟函数有啥关系?

①,构造函数就是函数啊 

②,但他有特征啊,函数名大写,与new命令搭配,函数内部使用了this关键字

上一篇下一篇

猜你喜欢

热点阅读