0
这里是代码不能重新分配它:我已经声明了全局变量,但使用功能
var num = 3
myFunction(num)
function myFunction(aNumber)
{
aNumber = 20
}
console.log(num)
它仍然说,“民”是3,我想知道为什么吗?
这里是代码不能重新分配它:我已经声明了全局变量,但使用功能
var num = 3
myFunction(num)
function myFunction(aNumber)
{
aNumber = 20
}
console.log(num)
它仍然说,“民”是3,我想知道为什么吗?
你不必全局变量传递到函数来重新分配。
function myFunction() {
num = 20
}
console.log(num);
确实如此,但是这个假设函数总是想要改变'num'变量。鉴于原始代码,它可以改变任何传入的变量(如果它以这种方式工作的话)。 – 2017-04-17 13:39:43
JS没有指针。您将'20'分配给'aNumber'参数,该参数接收当前的num值,但与num不相关。 – 2017-04-17 13:31:39
'myFunction(num)'*从num中读取值3,并将该值(不是变量)传递给myFunction。 'myFunction'在参数'aNumber'中接收该值。 'aNumber的= 20'专卖店在'aNumber'值20,这无论如何对'num'没有影响,因为该函数不知道'num'从通话(但通过其他方式做任何事情,但是这没什么用'aNumber'参数来做)。 –
'myFunction' *可以*更新'num',通过这样做'NUM = 20'直接,因为'myFunction'是在上下文中的封盖,其'num'定义。如果它*不是在定义了'num'的上下文的闭包,它将不能直接更新它。 –