【发布时间】:2013-10-18 15:53:54
【问题描述】:
我正在研究 Underscore.js 的注解源码。
http://underscorejs.org/docs/underscore.html#section-41
这是 _.first 方法:
_.first = _.head = _.take = function(array, n, guard) {
if (array == null) return void 0;
return (n == null) || guard ? array[0] : slice.call(array, 0, n);
};
问题:
为什么'return void 0;'而不仅仅是“返回”; ? 据我所知,return 从函数中隐式返回 undefined(值!)。就像'return void 0'一样。
【问题讨论】:
-
这似乎是不一致的,因为在源的其他部分使用
return;。 -
可能是为了让代码更清晰。
-
这可能是永远无法解释的事情之一。 (即使你问写它的程序员)
-
在2010-12-01上作者首次将
return;添加到代码中,return void 0;出现2012-10-06。把它归结为两年时间的流逝?