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