美文网首页
JS中的构造函数

JS中的构造函数

作者: 印第安老斑鸠_333 | 来源:发表于2019-03-20 10:10 被阅读0次

    想生成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关键字

    相关文章

      网友评论

          本文标题:JS中的构造函数

          本文链接:https://www.haomeiwen.com/subject/zfbamqtx.html