java脚本箭头函数返回(x++,x)

Bab*_*Asl 9 javascript arrow-functions

我不知道代码是如何const countFrom = x => () => (x++, x);工作

const countFrom = x => () => (x++, x);
let a = countFrom(1)

console.log('output:', a()) // output: 2
console.log('output:', a()) // output: 3
console.log('output:', a()) // output: 4
console.log('output:', a()) // output: 5
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper {min-height: 100%!important; top: 0;}
Run Code Online (Sandbox Code Playgroud)

Jon*_*lms 4

x是外部 ( ) 函数内部的变量x =>,因此所有内部函数 ( () => (x++, x)) 共享相同的变量。x++每当内部函数执行时,post 都会递增该变量。在本例中,逗号运算符 ( ..., x) 的计算结果为最后一个逗号分隔的表达式。x

如果没有逗号运算符,可能更容易理解:

 const counter = x => () => x = x + 1;
Run Code Online (Sandbox Code Playgroud)