美文网首页
十三(2)、面向对象之构造函数的执行机制 ------ 2019

十三(2)、面向对象之构造函数的执行机制 ------ 2019

作者: 自己写了自己看 | 来源:发表于2019-12-25 14:33 被阅读0次

    1、普通函数执行机制:

    /**
    1、形成一个私有的作用域;
    2、形参赋值;
    3、变量提升;
    4、代码执行;
    5、栈内存释放问题;
    */
    

    2、构造函数执行机制:

    function Fn (name, age) {
        var n = 10;
        this.name = name;
        this.age = age + n;
    }
    var f = new Fn();
    /**
    1、和普通函数相同,形成一个私有作用域;
    2、形参赋值;
    3、变量提升;
    4、构造函数独有:在JS代码执行之前,首先在当前形成的私有栈中创建一个对象(AAAFFF000)(一个堆内存,暂时不存储任何的东西);
    并且让函数的执行主体(this)指向这个新的堆内存(this === AAAFFF000);
    5、代码自上而下执行;
    6、构造函数独有:代码执行完成,把之前创建的堆内存地址返回(浏览器默认返回);
    */
    
    /**
    1、开始创建的对象(AAAFFF000)其实就是Fn这个类的一个实例,我们让this指向这个实例,代码执行中的 this.xxx = xxx 都是
    给这个实例设置 “私有属性”,最后浏览器会把默认创建的实例返回,供外面接收。
    2、再次执行 new Fn(),就是把上面的操作重新执行一遍,会形成新的实例(新的内存空间),所以说实例是独立分开的;
    */
    
    构造函数执行机制.png

    相关文章

      网友评论

          本文标题:十三(2)、面向对象之构造函数的执行机制 ------ 2019

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