想用lambdas写一个简短的闭包:
let fetch = () => {
let page = 0;
return () => {
page++;
console.log(page);
};
}();
但最终得到了:
file.js:7:1 SyntaxError: missing ; before statement:
file.js:7:1 }();
file.js:7:1 .^
有人可以解释为什么吗?像这样写就可以了:
let fetch = function() {
let page = 0;
return () => {
page++;
console.log(page);
};
}();
答案 0 :(得分:1)
在调用第一个函数之前,您需要在其周围加上括号:
let fetch = (() => {
let page = 0;
return () => {
page++;
console.log(page);
};
})();
fetch()
fetch()