gpt4 book ai didi

javascript - ImmutableJS 无法使用新的自定义对象实例

转载 作者:行者123 更新时间:2023-12-03 06:11:39 26 4
gpt4 key购买 nike

在原始 JS 对象上使用 Immutable.fromJS() 可以按预期工作并返回一个 Map,但尝试使用相同的 Immutable.fromJS()从构造函数获取的自定义对象不起作用

含义:

  • {/*1*/}:console.log 返回自定义对象。
  • {/*2*/}:console.log 返回相同自定义对象,即使我使用Immutable。 fromJS().
  • {/*3*/}:console.log 返回自定义对象。
  • {/*4*/}:console.log 按预期返回 map = Immutable.fromJS()

我在文档中找不到任何解释。

{/*EXPORTING CONSTRUCTOR*/}
export function MyObject() {
this.id = null;
this.name = '';
}

{/*EXPORTING RAW OBJECT*/}
export my_object = {
this.id = null;
this.name = '';
}

//in another file
//importing, and than:

let myConstructedObject = new MyObject();
let myRawObject = my_object;

{/*1*/} console.log(myConstructedObject) // => object
{/*2*/} console.log(Immutable.fromJS(myConstructedObject)) // => object ?!?!

{/*3*/} console.log(myRawObject) // => object
{/*4*/} console.log(Immutable.fromJS(myRawObject)) // => map (OK!)

最佳答案

我认为这个话题的人:How do I make a custom immutable type using facebook/immutable-js?实际上从建设性的 Angular 讨论同样的问题。

总结一下讨论,您不能只是“Immutivize”自定义对象,而是可以使用 Immutable.Record(使用纯 ImmutableJS)或 Map(使用“可扩展不可变”库)自己编写不可变对象(immutable对象)。 )

关于javascript - ImmutableJS 无法使用新的自定义对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39290491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com