给出以下片段:
function output() {
return "<p>normal function</p>";
}
//first version
document.write(output());
//second version
document.write(() => {return "<p>arrow-function</p>"});
我想知道,为什么在上面的示例中正常函数会正确打印,但第二种方法只会像这样打印翻译后的函数声明:
"function () {return "
arrow-function
";} "
你能解释一下吗?
最佳答案
您实际上并没有像调用第一个函数那样调用第二个函数。如果您包装该函数并调用它,您将获得预期的结果。
function output() {
return "<p>normal function</p>";
}
//first version
document.write(output());
//second version
document.write(() => {return "<p>arrow-function</p>"});
//should be
document.write((() => {return "<p>arrow-function</p>"})());
关于javascript - 为什么 JavaScript ES6 函数调用无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53290287/