构造函数的运行机制

function fn(name, age) {
        this.name = name;
        this.age = age + n;
    }
 var f = new fn("xxx", 18);

构造函数简单的运行机制分为四个部分

第一步  =>  首先形成一个私有的作用域(栈内存)

第二步  =>  (构造函数独有) 在js代码自上而下执行之前,首先在当前形成的私有栈中创建一个对象(创建一个堆内存:暂时不存储任何东西),并且让函数中的执行主体(this)执行那个这个新的堆内存(this==创建的对象)
第三步  =>  代码自上而下执行
第四步  => (构造函数独有) 代码执行完成,把之前创建的堆内存地址返回(浏览器默认返回)
注意:构造函数执行,不写 return ,浏览器会默认返回创建的实例,但是如果写 return
 1、 return一个基本类型值。返回的结果依然是类的实例,没有受到影响
 2、 return一个引用值,则会把默认返回的实例覆盖,此时接收到的结果就不再是那个实例了
构造函数执行的时候,尽量减少 return的使用,防止覆盖实例
posted @ 2020-10-22 21:33  史小坑  阅读(168)  评论(0编辑  收藏  举报