class类和构造函数在使用new创建实例对象时候都做了什么?

  new关键字配合普通构造函数: new关键字配合普通构造函数的时候主要有以下步骤: ①创建一个空对象,这个空对象就是下面最终的实例对象 ②将这个空对象的__proto__属性和构造函数的prototype属性建立联系,也就是 __proto__===prototype ③将这个空对象作为当前构造函数的上下文 ④返回这个空对象 这里,我们写在这个构造

  new关键字配合class类:和构造函数类型.

  两个的区别:使用构造函数来创建一个实例对象 ,在构造函数里面声明一个函数,这个函数不会出现实例对象身上,因为这个函数没有申明在this里面.在上面所说的第三步里面没有将这个函数放入到this,也没有将这个东西加入到prototype上面

  然而这个类,这里我没看过底层源码,但是我根据网上说的内容,以及代码亲自实践推断出,使用class创建一个实例,他会把在class类中的所有变量以及以变量形式声明的函数,都放入到this当中去,也就是说会在其创建的实例对象中出现类中所存在的变量.     直接声明的函数和constructor中声明的东西,都会给放到这个prototype上.

 

执行顺序:

    构造函数执行顺序:首先执行script中的代码.将声明好的变量和函数初始化,放入到window作用域上,然后遇到了new关键字,就会去找到这个new关键对应的构造函数,然后会按照正常顺序执行一次构造函数(这里就像执行正常的代码块一样该怎么去做就怎么去做),如果在构造函数里面没有碰到this,那么创建的实例对象中就不会存在任何东西,只是一个空对象

    class类执行顺序:首先执行script中的代码.将声明好的变量和函数初始化,放入到window作用域上,然后遇到了new关键字,就会去找到这个new关键对应的class类,这个类会执行一次.在类中只能声明变量或者函数,所以执行一遍这个类的意思就是,将写好的东西都声明上.声明好了之后就会执行constructor(){}这个函数,这里这个constructor中的执行顺序就和这个普通函数一样了.然后执行完了就算是好了.

    以上内容就是前端class类和构造函数的区别和执行顺序的区别了

posted @   帅到被人砍的阿豪  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示