2013-09-17 3 views
0

Я ищу, чтобы оптимизировать следующий блок кода, промежутки меньше кода и скорости. Он просто объединяет 2 объекта JavaScript в 1. Хотя он работает нормально, я уверен, что это может быть чище. Любая помощь была бы потрясающей.Оптимизация функции слияния объектов Javascript

Также оно должно быть сделано в родном JavaScript без использования библиотеки, такие как JQuery и т.д.

Приветствия

function mergeObject(obj1, obj2) { 
    var output = {}; 
    if (!obj2) { 
     return obj1; 
    } 
    for (var prop in obj1) { 
     if (prop in obj2) { 
      output[prop] = obj2[prop]; 
     } else { 
      output[prop] = obj1[prop]; 
     } 
    } 
    return output; 
} 
+3

Посмотрите, как это делают другие библиотеки. Например, underscore.js: http://underscorejs.org/docs/underscore.html#section-78 –

+4

Вы уверены, что это работает? что, если у вас есть свойство в obj2, которое не находится в obj1? – Vic

+0

Вик прав, это ничего не сливает. – Andy

ответ

0

Вы могли бы это сделать, но обратите внимание, что свойство в a будет перезаписана, если это также в b.

function(a, b) { 
    if (a && b) { 
    for (var key in b) { 
     if (b.hasOwnProperty(key)) { 
     a[key] = b[key]; 
     } 
    } 
    } 
    return a; 
} 
Смежные вопросы