如何使用不可变的javascript模拟状态

时间:2016-02-07 16:44:57

标签: javascript immutable.js

// REVISION 1

而不是构建一个命令行插件(它获取一个新的环境状态,因此该函数本身不能保留状态@ T.J.Crowder) ,假设我正在构建一个在脚本中调用的简单函数。

简单示例:(计数器插件)我希望插件每次运行时都增加一个。

console.log(counter())
    -> 1
console.log(counter())
    -> 2

我认为答案与递归循环有关,但我不明白如何实现这一点?

我最好的猜测是它看起来像这样:

export function counter(){
    return counter
}

//第一版

我正在使用immutablejs构建一个命令行节点插件。

简单示例:(计数器插件)我希望插件每次运行时都增加一个。

$ node bin/counter
-> 1
$ node bin/counter
-> 2

我认为答案与递归循环有关,但我不明白如何实现这一点?

我最好的猜测是它看起来像这样:

export function counter(){
    return counter
}

1 个答案:

答案 0 :(得分:0)

  

我认为答案与递归循环有关...

不,这与递归无关。

您需要拥有"插件"将状态存储在某个地方,因为每次它通过node运行时,它都会获得一个全新的全球环境。

因此,它可能会将该数据存储在文件中。例如。