(function(spanishGreeting, name){
var spanishGreeting = 'HOLA!!';
spanishGreeting = 'Como estas!'
console.log(spanishGreeting);
}(greeting,'John'));
有人請向我解釋一下,如果我對上述代碼的理解是正確的嗎?內存變量名稱相同的位置
因此,首先在IIFE var spanishGreeting = 'HOLA!!';
之內,這行代碼創建一個全新的變量,其名稱與傳遞給IIFE的參數名稱相同。那麼這個新的變量聲明會覆蓋作爲參數傳入的變量嗎?所以基本上傳入的變量spanishGreeting
將在函數的其餘部分被忽略。
現在是參數變量spanishGreeting
仍然存在於內存中嗎?或者有新的變量聲明:var spanishGreeting = 'HOLA!!';
覆蓋了參數變量spanishGreeting
的內存位置?
非常感謝您的詳細解答!它清除了很多問題,我有哈哈...! – LP496