下划线的扩展函数是否recursion地扩展(或者可以select这样做)?

jQuery的扩展函数有recursion扩展的选项,我在创buildjsonconfiguration文件时使用。 我可以看到,下划线有一个扩展函数 ,但它甚至没有提到recursion。 我认为这意味着它不会recursion地扩展,但是我想在这之前我会问这个问题,然后浪费很多时间。

你的假设是正确的,Underscore的extend不会recursion地扩展。 实现相当简单 :

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

对你来说最有意思的部分是for循环中的一个简单的非recursion赋值:

 obj[prop] = source[prop];