首页 > 解决方案 > 使用方法从类变量更新对象

问题描述

我的目标是创建一组设置了默认属性的对象,但在某些情况下,我需要更新一个或多个属性。这是我的带有变量的示例类 - 对象

export class Components{
    public static component_1 = {
        width: 1,
        height: 2,
        x: 3,
        y:4
    }
    
    public static component_2 = {
        width: 10,
        height: 20,
        x: 30,
        y:40
    }

    ...
}

我想以例如方式创建我的对象数组

let myArrOfComponents = [Components.component_1, Components.component_2, ...]

问题是在某些情况下,我将不得不更新对象中的一个或多个属性,例如宽度和 x。我想这样做,例如

let myArrOfComponents = [Components.component_1.configure(width = 99, x=88)]

你能帮我怎么做吗?我不确定如何实现'.configure()'我正在尝试解决这个问题,但不知道如何实现它或具有类似行为的东西

标签: javascripttypescriptobject

解决方案


最简单的选择是使它们成为方法(所谓的“工厂方法”)。

class Components {
    static component_1 = (options = null) => ({
        width: 1,
        height: 2,
        x: 3,
        y: 4,
        ...options
    })
}

现在,Components.component_1()将返回一个默认对象,例如Components.component_1({x: 25, width: 100})一个“已配置”对象。


推荐阅读