雖然我瀏覽了一些JS代碼,但我找到了代碼。沒有參數的JS函數正在工作。怎麼樣?
示例代碼:
arg = "TEST ALERT MESSAGE";
MyFunction(arg);
function MyFunction()
{
alert(arg)
}
以上MyFunction的()被給予警告消息,但沒有參數來接收傳入的arugment。
但是當我改變'arg'變量(在函數中,在函數'arg'外),它不起作用。
怎麼可能?
在此先感謝
雖然我瀏覽了一些JS代碼,但我找到了代碼。沒有參數的JS函數正在工作。怎麼樣?
示例代碼:
arg = "TEST ALERT MESSAGE";
MyFunction(arg);
function MyFunction()
{
alert(arg)
}
以上MyFunction的()被給予警告消息,但沒有參數來接收傳入的arugment。
但是當我改變'arg'變量(在函數中,在函數'arg'外),它不起作用。
怎麼可能?
在此先感謝
JavaScript中的變量作用域不符合您的想法。 爲了使該變量「私人」的嘗試:
var arg = "not private";
function privateMSG(){
var arg = "private";
function alerter(){
alert(arg);
}
alerter();
}
在嵌套函數和閉包MDN has a much better explanation部分
如果'MyFunction'沒有arg'的'本地版本,它會嘗試在外部範圍內引用一個名爲'arg'的屬性。否則你會得到'未定義'。 – Marty
沒有任何預定義參數的函數仍然可以接受參數,它們是動態的,可以通過'arguments'僞數組訪問。 – elclanrs