无法弄清楚如何在箭头函数中返回嵌套函数的结果。
如何表达这一点(效果很好):
var stopEating = (function() {
var loadedStomach = false;
return function() {
if(!loadedStomach){
loadedStomach = true;
console.log('Stop eating');
}};
})();
作为箭头功能(无法正常工作):
const stopEating = () => {
let loadedStomach = false;
return () => {
if(!loadedStomach) {
loadedStomach = true;
console.log('Its enough eating!');
}};
};
答案 0 :(得分:2)
您需要调用该函数以获取结果,因此在末尾添加括号。
const stopEating = (() => {
let loadedStomach = false;
return () => {
if(!loadedStomach) {
loadedStomach = true;
console.log('Its enough eating!');
}
};
})();
答案 1 :(得分:-1)
在第一个示例中,您创建了Immediately Invoked Function Expression (IIFE)。
这是一个JavaScript函数,它在定义后立即运行。这就是为什么您会收到内部功能的原因,该功能会显示“停止进食”。
要实现此模式,您只需包装箭头功能:
const stopEating = (() => {
let loadedStomach = false;
return () => {
if(!loadedStomach) {
loadedStomach = true;
console.log('Its enough eating!');
}
};
})();