Тема: jQuery.extend
Показать сообщение отдельно
  #2 (permalink)  
Старый 14.09.2014, 09:04
Аватар для Аркадий Укупник
Аспирант
Отправить личное сообщение для Аркадий Укупник Посмотреть профиль Найти все сообщения от Аркадий Укупник
 
Регистрация: 06.09.2014
Сообщений: 41

Если же необходимо что-то клонировать, то функцию можно переписать так:
function extend() {
  var target = arguments[0]
    , i = 1;
  for (; i < arguments.length; ++i) {
    var options = arguments[i];
    for (var name in options) {
      if (options.hasOwnProperty(name)) {
        var src = options[name];
        if (src == target) { // избегаем ухода в вечную рекурсию
          continue;
        }
        if (isObject(src)) { // src != null && typeof src == 'object'
          var dst = new src.constructor();
          src = arguments.callee(dst, src);
        }
        target[name] = src;
      }
    }
  }
  return target;
}
Ответить с цитированием