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

标签 javascript immutable.js

//修订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
}

最佳答案

I assume that the answer has something to do with a recursive loop...

不,这与递归无关。

您需要让“插件”在某处存储其状态,因为每次通过 node 运行它时,它都会获得一个全新的全局环境。

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

关于javascript - 如何使用不可变的 javascript 模拟状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35256193/

相关文章:

javascript - Angularjs 自定义指令范围 :true change it's parent scope

javascript - 动态 ng-model 到 ng-repeat AngularJS

javascript - 如何在 XHR 调用中使用响应 PHP 变量?

redux - 使用 Redux 和 Immutable JS 存储记录元数据的位置

javascript - 如何在不可变对象(immutable对象)的函数式 JavaScript 转换中处理 if/else 以进行调试

javascript - 传单 map 的绘制线

javascript - CRM 2011 HTML 网络资源 : getContext produces "Object doesn' t support property or method"

javascript - 比较两个数组时,单元测试equals()失败

immutable.js - 具有 Relay-GraphQL 突变的撤销-重做状态遍历模式

javascript - ImmutableJS - 插入嵌套数组