【发布时间】:2021-07-18 11:49:29
【问题描述】:
这不是调试问题或操作方法问题。这是一个概念问题。
我发现我很难理解this“第二范围”是什么,但忽略了细节我想出了这个解释:
如果函数存储(以某种方式)如下:
{
// function body written using undefined parameters.
// When the function is called the arguments are assigned to the parameters.
}
声明默认参数是这样的:
{ // Second scope
parameter1 = "something"
parameter2 = 5
{
// function body written using the above parameters.
// When the function is called the arguments or default values get assigned to the parameters.
}
}
这真的是在幕后发生的吗?如果不是,那里面会发生什么? ECMAScript docs 比我的水平方式高。也许有人可以用外行的方式提供解释?谢谢!
【问题讨论】:
-
挑剔一点:“当函数被调用时,参数代替参数”参数不代替参数,值 个参数被 分配 给参数。如果您有
function example(a) { /*...*/ }并且您有let b = 42; example(b),则a参数获取其值的方式与a = b赋予其值的方式完全相同。参数值的来源 (b) 和参数之间没有持续的联系。这几乎肯定是你的意思,但是...... :-)
标签: javascript function scope