Untitled
unknown
javascript
2 years ago
979 B
5
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...