var hi = function(type) {
if (type == "boss") {
return function(name) {
alert("Hi chief " + name);
};
} else {
return function(name) {
alert("Hi " + name);
};
}
};
hi("boss"); // this will do nothing
var returnedFunction = hi();
returnedFunction("boss"); // prompt "Hi boss"
returnedFunction = hi("boss");
returnedFunction(); // prompt "Hi chief undefined"
returnedFunction("Douglas"); // prompt "Hi chief Douglas";
好了,所以我明白是怎麼回事,除了第一個幾乎一切:功能沒有返回值(甚至沒有未定義)
hi("boss"); // this will do nothing
我希望它返回「嗨首席未定義」。
不是「boss」參數意味着它進入if語句,它應該執行參數名稱未定義的函數:因此,您應該得到「Hi chief undefined」。
如何/爲什麼我會得到這種行爲的任何信息將是最受歡迎的。我想了解和學習JavaScript的基礎知識!
親切的問候
的'hi'函數返回到另一個函數的引用。它不會返回'Hi Chief undefined',因爲你的'hi'函數中沒有'return'SAMPLE STRING''。 – Dekel
'hi(「boss」)'返回另一個函數。爲什麼你會期望它返回其他東西? – Xufox