我想知道是否有人能够帮助我理解为什么函数中的名称与函数外部的名称变量无关。如果你想在函数内改变名称的全局变量,那有什么办法呢?函数内部的变量混淆
var name = "Paul";
function test(name){
name = name || 'You';
console.log(name);
}
test('Mario');
console.log(name);
更新:感谢您的快速回复家伙。所以,如果你一行一行地运行它,这是怎么回事?
一旦你将马里奥传递给函数,它将用传递给该函数的名字替换所有名称实例?所以反过来你:
"Mario" = "Mario" || 'You';
,但如果你通过什么:
test();
然后不姓=名字?为什么需要||声明?
你不能打电话给你的函数的参数以不同的方式? –
如果这个变量是真正的全局变量,希望它不是,你可以使用'window.name'来引用它(假设你在浏览器环境中)。 –
@ go-oleg:如果它在全局范围内,事情可能会有点有趣:'window.name'已被用于[其他东西完全](https://developer.mozilla.org/en-US/文档/网络/ API/window.name)。 – icktoofay