ES6 -- function & {}

在ES5中, 以function來界定function作用域(scope), 就像var也是用function來界定變數有效範圍(let之前有介紹過):

e.g.

(function() {

    function foo() { return 1; }

    (function() {

        function foo() { return 2; }                 // 這function foo(){} 只存在這閉包中
        console.log(foo());                               // 2  (以內部的function界定作用域)

    })();

    console.log(foo());                                   // 1  (以外部的function界定作用域)

})();


但在ES6中, 是以大括號{}來界定function作用域, 就像let也是用{}來界定變數有效範圍(let之前有介紹過):

e.g.

{

    function foo() { return 1; }

    {

        function foo() { return 2; }
        console.log(foo());                               // 2  (以內部的{}界定作用域)

    }

    console.log(foo());                                   // 1  (以外部的{}界定作用域)

}



留言

熱門文章