Javascript 函数不返回任何内容(甚至未定义)
好吧,除了第一个,我几乎了解所有发生的事情:Javascript 函数不返回任何内容(甚至未定义),javascript,function,Javascript,Function,好吧,除了第一个,我几乎了解所有发生的事情: var hi = function(type) { if (type == "boss") { return function(name) { alert("Hi chief " + name); }; } else { return function(name) { alert("Hi " + name); };
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 chief undefined”
“boss”参数不是意味着它进入if语句,在那里它应该执行参数名未定义的函数吗:因此您应该得到“Hi-chiefundefined”
欢迎提供有关我如何/为什么会有这种行为的任何信息。我正在努力理解和学习javascript的基础知识
它只返回函数,不执行它。你必须写:
hi("boss"); // this will do nothing
为了执行它
你可能会这么说
hi("boss")(); // it would print Hi chief undefined
与写作同等重要
hi("boss");
写作时
function(name) {
alert("Hi chief " + name);
};
就像电线一样
hi("boss")();
它只返回函数,不执行它。你必须写:
hi("boss"); // this will do nothing
为了执行它
你可能会这么说
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 ()
为什么不只是:
function(name) {
alert("Hi chief " + name);
}(); // notiice the ()
hi(“老板”)代码>这行代码将返回
var hi = function(type, name) {
if (type == "boss") {
alert("Hi chief " + name);
} else {
alert("Hi " + name);
}
};
这个功能
现在你必须执行它
为了执行它,只需编写hi(“boss”)()代码>你好(“老板”)代码>这行代码将返回
var hi = function(type, name) {
if (type == "boss") {
alert("Hi chief " + name);
} else {
alert("Hi " + name);
}
};
这个功能
现在你必须执行它
为了执行它,只需编写hi(“boss”)()代码>`
function (name) {
alert("Hi chief " + name);
}
``
`函数返回对另一个函数的引用。它不会返回Hi-chiefundefined
,因为在Hi
函数中没有return“SOME STRING”
。Hi(“boss”)
返回另一个函数。为什么您希望它返回其他任何内容?hi
函数返回对另一个函数的引用。它不会返回Hi-chiefundefined
,因为在Hi
函数中没有return“SOME STRING”
。Hi(“boss”)
返回另一个函数。你为什么希望它返回其他任何东西?我知道可以让它变得更简单,但我自己很难理解到底在运行什么以及javascript函数背后的逻辑是如何工作的。我知道可以让它更简单,但是,对于我自己来说,理解到底在运行什么以及javascript函数背后的逻辑是如何工作的实在是太过分了。谢谢,我现在明白了!您可以返回一个函数而不实际执行它。@develution是的,非常好!这是javascript中的一个重要概念。谢谢,我现在明白了!您可以返回一个函数而不实际执行它。@develution是的,非常好!这是JavaScript中一个重要的概念。考虑提供你所做的改变的解释和理由,然后使用翻译者或者尽你所能用英语解释,某人可能会纠正你的语法。这绝不是低质量回答的借口考虑解释一下你所做的改变以及改变的原因然后使用翻译或者尽你最大的努力用英语解释,也许有人会纠正你的语法。这很难成为低质量回答的借口