内联函数默认参数内的变量范围

时间:2018-02-26 23:14:25

标签: javascript ecmascript-6

ES6介绍default parameters。我试图了解内联函数默认参数如何与这个新功能一起使用。具体如何确定其范围。

举例说明以下两个函数:

function one(x, f = function (){return x})
{
    var x = 5;
    console.log([x,f()]);
}

function two(x, f = function (){return x})
{
    x = 5;
    console.log([x,f()]);
}

one(1);//[5,1]
two(1);//[5,5]

是否正确地说,在函数一中,f在参数列表中为x保留了它自己的闭包范围,因此当函数将x重新定义为新的var:{{1 } var x = 5;的引用与函数内部的引用不同?

如果是这种情况,则函数1等于下面的函数三:

f

如果有人能够指出我文档的正确部分也很棒,我试着,没有运气,找到如何记录这种行为。

0 个答案:

没有答案