微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 使用ImmutableJS Record创建具有不同属性的子类

我们使用ES6和immutable.js来创建不可变的类.

class Animal extends Record({foo: ""});

如何从Animal继承并添加自定义属性,但仍然可以将其用作不可变记录?

class Animal extends Animal {}; // How to add the key "bar"?
最佳答案
Record方法将创建的类型锁定为defaultValues,不能用于进一步扩展属性.这是我提到的here之一.

如果你不是太想在运行时检查继承(instanceof),那么你可以这样做 –

let foo = {foo: ""};
class Animal extends Immutable.Record(foo){}
let bar = {bar: ""};
class Mammals extends Immutable.Record(Object.assign({},foo,bar)){}

虽然不能替代真正的继承,但它可以让您重复使用模式.方法不会以这种方式继承.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐