javascript - 在 nodejs 中创建不可变对象(immutable对象)的适当方法

标签 javascript node.js immutability

我正在构建一个 API,我希望使我的最终返回 对象 成为一个不可变对象(immutable对象)。使更改我的对象的唯一方法是复制到另一个实例。

我该怎么做?

预期行为:

var objectImmutable = api.call(id);
objectImmutable.new_var = 10;
console.log(objectImmutable.new_var)
=>undefined
//---------
var objectNotImmutable =  JSON.parse(JSON.stringify(api.call(id)));
objectNotImmutable .new_var = 10;
console.log(objectImmutable.new_var)
=>10

最佳答案

你可以做到 Object.freeze

如果您想卡住所有属性,您可以使用 deep-freeze这是一个非常小的脚本,通过属性递归运行。

我正在编写一个使对象不可变的小型库 (WIP),但通过使用 API,您可以执行操作并获得结果(无需更改对象,因为它是不可变的)。您可以查看代码 here如果您想获得任何想法或做出贡献。

关于javascript - 在 nodejs 中创建不可变对象(immutable对象)的适当方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39148811/

相关文章:

javascript - 在带有打印对话框的 javascript 中打开一个新窗口?

javascript - 如何更改幻灯片更改时图像的 href

javascript - 如何在创建文件的同一文件中调用 this.function

java - 字符串与字符串数组的元素之间的比较

android - 可变的 android.os.Environment.DIRECTORY_WHATEVER?

asp.net - 在 html/Javascript 中动态创建表行

javascript - 使用 Node 从 javascript 文件导入并运行函数

javascript - 根据环境禁用 Jasmine 的 fdescribe() 和 fit()

node.js - 仅针对200或500个错误代码返回错误消息

kotlin - 如何在 Kotlin 中创建不可变对象(immutable对象)?