稀土 2017-12-13
对象生成时会自动调用构造函数。只要找到了定义对象的地方,就找到了构造函数调用的时机。不同作用域的对象的生命周期不同,如局部对象、全局对象、静态对象等的生命周期各不相同,只要知道了对象的声明周期,便可以推断出构造函数的调用时机。
反汇编:
获取对象首地址并调用构造函数:
对象的地址为:
进入构造函数,先是push一堆寄存器:
还原ecx寄存器,并初始化:
构造函数属于成员函数,在调用时要用到this指针。返回this指针是构造函数的特征之一(这是识别局部变量构造函数的必要条件)。
是一道经常出现在前端面试时的问题。如果只是简单的了解new关键字是实例化构造函数获取对象,是万万不能够的。更深入的层级发生了什么呢?同时面试官想从这道题里面考察什么呢?下面胡哥为各位小伙伴一一来解密。