ES6中的解构

时间:2017-11-27 17:22:05

标签: javascript ecmascript-6 destructuring

使用es6中的解构是否有更好的方法来实现这一目标?

  searchCreated(searchParams) {
    this.regionId = searchParams.region;
    this.maxPrice = searchParams.maxPrice;
    this.minPrice = searchParams.minPrice;
    this.selectedLocalities = searchParams.selectedLocalities;
    this.propertyTypeId = searchParams.propertyTypeId;
    this.minBeds = searchParams.minBeds;
    this.maxBeds = searchParams.maxBeds;
    this.minSize = searchParams.minSize;
    this.maxSize = searchParams.maxSize;
    this.keyword = searchParams.keyword;
    this.ber = searchParams.ber;
}

如果所有这些值都是靠自己而不是this的属性,我就可以了。我只是不确定将一个对象有效地映射到另一个对象的优雅方式

1 个答案:

答案 0 :(得分:3)

由于您要将searchParam的所有属性添加到this,因此可以使用Object.assign,它基本上将对象的属性复制到另一个对象。

在您的代码中,它看起来像这样:

searchCreated(searchParams) {
    Object.assign(this, searchParams, { // additional object for custom params
        region: searchParams.regionId,
        customParamName: searchParams.customParam
    }); 
}