Untitled
unknown
javascript
2 years ago
979 B
9
Indexable
//Задача: не змінюючи логіки, змінити структуру коду, щоби вона відповідала принципу DRY:
const METHODS = {
SET: 'set',
APPLY: 'apply',
GET: 'get',
};
ctx.prototype.__applyStyleState = styleLoop(METHODS.APPLY, styleState);
ctx.prototype.__setDefaultStyles = styleLoop(METHODS.SET);
ctx.prototype.__getStyleState = styleLoop(METHODS.GET);
let styleLoop = function (method, styleState = {}) {
let keys = Object.keys(styleState).length ? Object.keys(styleState) : Object.keys(STYLES);
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
switch (method) {
case METHODS.GET:
styleState[key] = this[key];
break;
case METHODS.SET:
this[key] = STYLES[key].canvas;
break;
case METHODS.APPLY:
this[key] = styleState[key];
break;
}
}
if (method == METHODS.GET) return styleState;
};
Editor is loading...