最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 从堆栈视角初探javascript执行过程

    正文概述 掘金(五老星)   2021-01-26   593

    基础类型存放在栈内存空间,对象类型(Object,Array,Map,Set,Function等)存放在堆内存空间(图内含有粗略原型链)

    从堆栈视角初探javascript执行过程

    js 代码执行过程分解

    test.js

    <script>
    class Person{
        constructor(naem,age) {
            this.name = name
            this.age = age
        }
    }
    
    function countPrice(age) {
        let num = age * 10
        return num
    }
    
    function getPrice(age) {
        let res = countPrice(age) + 10
        return res
    }
    
    const count = 10
    
    let zx = new Person('zx', 18)
    zx.price = getPrice(zx.age)
    </script>
    

    从堆栈视角拆解代码执行过程(跟着图内的红色箭头走)

    图一箭头没有指向 constPrice 和 getPrice两函数,在堆栈内存空间就已经有了该两函数,是考虑到javascript函数有函数提升的作用(类似var变量提升),所以就没有放上箭头。

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    为了更好理解下图类class相关,需要理解new 关键词执行的过程

    • 创建一个空对象,作为将要返回的对象实例。
    • 将这个空对象的__proto__指向class的prototype属性。
    • 将这个空对象赋值给构造器函数(constructor)内部的this关键字。
    • 开始执行构造器函数(constructor)内部的代码。

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    从堆栈视角初探javascript执行过程

    总结:

    对于javascript来说可以从3个方向结合起来共同理解

    • javascript 的原型链机制
    • javascript 的 event loop 事件循环机制
    • 就是本文的从堆栈视角理解javascript
    关注个人公众号 玄墨前端记

    从堆栈视角初探javascript执行过程


    下载网 » 从堆栈视角初探javascript执行过程

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元