Как можно красиво сократить такой метод?
Observer.prototype.changed = function() { var observers = this.observers; var clone = this.clone; var target = this.target; if (Object.keys(target).length !== Object.keys(clone).length) { this.rememberState(); return true; } for (var key in target) if (target[key] !== clone[key]) { this.rememberState(); return true; } for (key in observers) if (observers[key].changed()) return true; this.rememberState(); return false; }; |
В принципе можно сделать вот так, но зачем.....
Observer.prototype.changed = function() { var observers = this.observers; var clone = this.clone; var target = this.target; if (Object.keys(target).length !== Object.keys(clone).length) this._return(true); for (var key in target) if (target[key] !== clone[key]) this._return(true); for (key in observers) if (observers[key].changed()) return true; return this._return(false) }; Observer.prototype._return = function(value) { this.rememberState(); return value; }; |
for (var key in target) if (target[key] !== clone[key]) this._return(true); Это какой то ад, не пиши так :) |
Цитата:
точнее даже так, ЕСТЬ ли какой-то способ красиво написать тот метод избегая повторений? |
Часовой пояс GMT +3, время: 18:00. |