我了解了Eloquent Javascript (Chapter 3)中的术语“变量阴影”,但是我试图理解该概念的精确的基本示例。
这是阴影的例子吗?
var currencySymbol = "$";
function showMoney(amount) {
var currencySymbol = "€";
console.log(currencySymbol + amount);
}
showMoney("100");
最佳答案
那就是所谓的变量范围。
变量仅存在于其包含的函数/方法/类中,并且这些变量将覆盖属于更大范围的任何变量。
这就是为什么在您的示例中,将显示欧元符号,而不是美元。 (因为包含美元的currencySymbol
比包含欧元符号的currencySymbol
的范围更广(全局))。
至于您的特定问题:是的,这是可变阴影的一个很好的例子。