Как можно красиво сократить такой метод?
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, время: 08:02. |