Use _.extend instead of the hand-rolled merge

This commit is contained in:
Jeremy Ashkenas 2010-02-13 08:50:29 -05:00
parent 8c077f0f65
commit dd6be80fca
2 changed files with 9 additions and 23 deletions

View File

@ -25,24 +25,11 @@
return memo; return memo;
}; };
// Merge objects. // Merge objects.
merge = function merge(src, dest) { merge = function merge(options, overrides) {
var __a, __b, fresh, key, val; return _.tap({}, function(fresh) {
fresh = {}; _.extend(fresh, options);
__a = src; return _.extend(fresh, overrides);
for (key in __a) { });
val = __a[key];
if (__hasProp.call(__a, key)) {
((fresh[key] = val));
}
}
__b = dest;
for (key in __b) {
val = __b[key];
if (__hasProp.call(__b, key)) {
((fresh[key] = val));
}
}
return fresh;
}; };
// Delete a key from an object, returning the value. // Delete a key from an object, returning the value.
del = function del(obj, key) { del = function del(obj, key) {

View File

@ -20,11 +20,10 @@ flatten: (list) ->
memo memo
# Merge objects. # Merge objects.
merge: (src, dest) -> merge: (options, overrides) ->
fresh: {} _.tap {}, (fresh) ->
(fresh[key]: val) for key, val of src _.extend fresh, options
(fresh[key]: val) for key, val of dest _.extend fresh, overrides
fresh
# Delete a key from an object, returning the value. # Delete a key from an object, returning the value.
del: (obj, key) -> del: (obj, key) ->