下划线的扩展函数是否递归递增(或者可以选择这样做)?

时间:2012-03-03 06:59:22

标签: node.js underscore.js

jQuery的扩展函数具有递归扩展选项,我在创建json配置文件时使用它。我可以看到下划线有一个extend function,但它甚至没有提到递归。我认为这意味着它不会递归扩展,但我认为在将它实现到我的项目之前我会问这里并浪费了很多时间。

1 个答案:

答案 0 :(得分:1)

您的假设是正确的,Underscore的extend不会递归扩展。 implementation is rather simple

_.extend = function(obj) {
  each(slice.call(arguments, 1), function(source) {
    for (var prop in source) {
      obj[prop] = source[prop];
    }
  });
  return obj;
};

最有趣的部分是for循环中的内容,一个简单的非递归赋值:

obj[prop] = source[prop];