我一直在使用以下方法来装饰我的 javascript 对象,但它有一个限制,我想知道是否可以就如何最好地处理它获得一些建议。
现在,我有以下内容;
export const ItemValidationDecorator = () => {
const decorate = (entity) => {
let _entity = {
...entity, ...{
getSelected: () => {
return entity.selected;
},
hasSelected: () => {
return entity.selected != null;
}
}
}
return _entity;
}
return {decorate}
}
//I call it from various places in my application
const _obj = decorate(response.data);
我通常传入一个从 API 调用返回的 JSON 对象,以添加一些方便的方法,以便它们在整个应用程序中可用。挑战在于,这些装饰方法(getSelected、hasSelected)中的每一个都不知道彼此,所以我无法做类似的事情;
getSelected: () => {
if (entity.hasSelected()) {
return entity.selected;
}
return 'Some useful error code, or other logic';
}
我正在寻找一种方法,让这些方法以某种方式相互了解。这个逻辑有没有模式,或者有不同的方式来实现类似的东西?