我理解的V8都幹了什麼

一段僞代碼 目的是睡服本身理解V8都幹了什麼
`this

// 僞代碼

// 編譯器 都幹了什麼 肯定 做用域鏈 詞法做用域

var  VOFoo = {} // foo的變量對象

var  VOBar = {} // bar的變量對象

var  fooScopeChain = \[VOFoo, window\] // foo的做用域鏈

var  barScopeChain = \[VOBar, VOFoo, window\] // bar的做用域鏈

// 引擎 都幹了什麼

function  foo() {

    // 建立階段
    // 給foo的變量對象賦值
    VOFoo = {

        args: \[\],

        bar:  bar,

        a:  undefined,

        b:  undefined

    }
    // 給foo的執行上下文賦值
    var  ECFoo = {

        VO:  VOFoo,

        ScopeChain:  fooScopeChain,

        this:  window

    }

    // 執行階段

    VOFoo.a = 20

    VOFoo.b = 30



    function  bar() {

        // 建立階段
        // 給bar的變量對象賦值
        VOBar = {

            args: \[\]

        }
        // 給bar的執行上下文賦值
        var  ECBar = {

            VO:  VOBar,

            ScopeChain:  barScopeChain,

            this:  window

        }

        return  a + b

    }

    return  bar

}

`
以上代碼純屬yycode

相關文章
相關標籤/搜索