首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Record

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

示例

代码语言:javascript
复制
var ABRecord = Record({a:1, b:2})
var myRecord = new ABRecord({b:3})

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

代码语言:javascript
复制
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”的值。

代码语言:javascript
复制
var myRecord = new ABRecord({b:3, x:10})
myRecord.get('x') // undefined

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

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

代码语言:javascript
复制
myRecord.b // 3
myRecord.b = 5 // throws Error

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

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

代码语言:javascript
复制
class ABRecord extends Record({a:1,b:2}) {
  getAB() {
    return this.a + this.b;
  }
}

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

建设

Record()

代码语言:javascript
复制
Record(defaultValues: {[key: string]: any}, name?: string): Record.Class

类型

Record.Class

代码语言:javascript
复制
class Record.Class

扫码关注腾讯云开发者

领取腾讯云代金券