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("boss")(); // it would print Hi chief undefined
为了执行它
你可能会这么说
hi("boss");
相当于书写
function(name) {
alert("Hi chief " + name);
};
写作时
hi("boss")();
就像接线
function(name) {
alert("Hi chief " + name);
}(); // notiice the ()
关于javascript - 函数不返回任何内容(甚至没有未定义),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41198929/