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'的上下文的閉包,它將不能直接更新它。 –