非常教程

Immutable 3.8.1参考手册

记录 | Record

Record

创建一个生成 Record 实例的新类。记录类似于 JS 对象,但强制允许一组特定的字符串键,并具有默认值。

示例

var ABRecord = Record({a:1, b:2})
var myRecord = new ABRecord({b:3})

记录始终具有它们定义的键的值。remove从记录中取出一个密钥只需将其重置为该密钥的默认值即可。

myRecord.size // 2
myRecord.get('a') // 1
myRecord.get('b') // 3
myRecordWithoutB = myRecord.remove('b')
myRecordWithoutB.get('b') // 2
myRecordWithoutB.size // 2

提供给记录类型中找不到的构造函数的值将被忽略。例如,在这种情况下,即使仅定义了“a”和“b”,ABRecord 也被提供了键“x”。此记录将忽略“x”的值。

var myRecord = new ABRecord({b:3, x:10})
myRecord.get('x') // undefined

由于记录有一组已知的字符串键,属性获取访问按预期工作,但属性集将引发错误。

注意:IE8不支持属性访问。仅get()在支持 IE8时使用。

myRecord.b // 3
myRecord.b = 5 // throws Error

记录类也可以扩展,允许记录上的自定义方法。这不是功能环境中的常见模式,但在许多 JS 程序中。

注意:TypeScript 不支持这种类型的子类。

class ABRecord extends Record({a:1,b:2}) {
  getAB() {
    return this.a + this.b;
  }
}

var myRecord = new ABRecord({b: 3})
myRecord.getAB() // 4

建设

Record()

Record(defaultValues: {[key: string]: any}, name?: string): Record.Class

类型

Record.Class

class Record.Class

记录 | Record相关

Immutable 3.8.1

immutable 是 Facebook 开源的一个项目,用于实现 javascript 的数据不可变,解决引用带来的副作用。

主页 https://facebook.github.io/immutable-js/
源码 https://github.com/facebook/immutable-js
发布版本 3.8.1

Immutable 3.8.1目录

1.Collection
2.fromJS()
3.is()
4.Iterable
5.List
6.Map
7.OrderedMap
8.OrderedSet
9.Range()
10.记录 | Record
11.Repeat()
12.Seq
13.设定 | Set
14.堆 | Stack