2016-05-05 66 views
0

無法理解函數的行爲無法理解函數的行爲

function Animal() { 
    console.log("showing an empty string: " + name); 
    console.log("showing not defined: " + other); 
} 

Animal("Tommy"); 
+0

它的行爲如何?你如何期待它的行爲? – Rayon

+0

你正在調用的函數不是你定義的。你定義的函數不接受任何'param' ..所以你會在'console'中得到'undefined error' .. –

+0

請更具體的與您的問題 –

回答

3

因爲你的函數不帶任何參數,不是執行

console.log("showing an empty string: " + name); 

將導致

showing an empty string: 

執行時

console.log("showing not defined: " + other); 

將導致錯誤「ReferenceError:other is not defined」。

該行爲是因爲您正在使用全局變量並且每個窗口都定義了名稱。默認情況下它是「」(空字符串)。

所以,如果你打開控制檯,並寫window.name你會得到"" ,如果你寫window.other你會得到undefined

+0

(y)。非常感謝你。 Justinas。理解:)。非常感謝 – maheshv13

2

所以每次windowname財產主要由window.name訪問。

所以,當你調用該函數,第一行是印刷

showing an empty string: 

因爲平時名是空的變量,並在第二行的變量other沒有定義所以它引發錯誤。

+0

謝謝:@void :) – maheshv13