Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.05.2013, 15:49
Аспирант
Посмотреть профиль Найти все сообщения от Maxmaxmaximus.js
 
Регистрация: 28.05.2013
Сообщений: 74

Как можно красиво сократить такой метод?
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;
};
Ответить с цитированием
  #2 (permalink)  
Старый 29.05.2013, 16:04
Аспирант
Посмотреть профиль Найти все сообщения от Maxmaxmaximus.js
 
Регистрация: 28.05.2013
Сообщений: 74

В принципе можно сделать вот так, но зачем.....

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;
};
Ответить с цитированием
  #3 (permalink)  
Старый 29.05.2013, 17:56
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

for (var key in target)  if (target[key] !== clone[key]) this._return(true);

Это какой то ад, не пиши так
__________________
kobezzza
code monkey
Ответить с цитированием
  #4 (permalink)  
Старый 29.05.2013, 18:19
Аспирант
Посмотреть профиль Найти все сообщения от Maxmaxmaximus.js
 
Регистрация: 28.05.2013
Сообщений: 74

Сообщение от kobezzza
Это какой то ад, не пиши так
конечно, но а как сократить то?

точнее даже так, ЕСТЬ ли какой-то способ красиво написать тот метод избегая повторений?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно перемещать модальное окно? izcian Общие вопросы Javascript 2 06.10.2012 18:20
Как обратиться к переменной внутри объекта, в произвольной функцию через его метод platedz Элементы интерфейса 15 24.08.2012 23:03
Можно ли сократить такую запись KonstantinK Элементы интерфейса 10 14.11.2011 19:50
Как можно активировать/деактивировать функцию Решатель Элементы интерфейса 2 31.10.2011 08:38
Как можно в DIV_е с включенным contentEditable запретить использовать <SCRIPT> и <A>? Маэстро Events/DOM/Window 11 02.07.2011 19:00