【发布时间】:2013-02-13 21:57:32
【问题描述】:
在深入研究uniform.js 源代码时,我发现了这个(在线#333):
/**
* Meaningless utility function. Used mostly for improving minification.
*
* @return false
*/
function returnFalse() {
return false;
}
此函数在某些地方被调用(趋势似乎是在这样的 JavaScript 对象文字中使用 false 值的情况下(来自#351 行)
bindMany($elem, options, {
'selectstart dragstart mousedown': returnFalse
});
但不是在显式返回 false 的情况下。我的问题是为什么说这可以改善缩小?我的第一个想法是,通过将false 拉入一个函数,该函数可以重命名为“a”,因此预期false 的地方可以表示为a(),但这似乎并没有提供太多我认为的好处是执行中额外功能的成本。有没有更明显的东西我不明白?
【问题讨论】:
-
我相信这比在其中放置一个返回 false 的匿名函数要好。据我所知,jQuery 的核心还有一个
returnFalse()函数。 编辑: 是的,在1.9.1 版本中仍然如此。 -
哦,我没有注意到函数被返回而不是返回值
-
显然,如果代码符合我的想法,那么您将处理程序绑定到那些返回 false 的事件,并且通过在 jQuery 中的事件处理程序中返回 false 实际上与调用
event.preventDefault()相同和event.stopPropagation()。 -
虽然,如果一个库使用 jQuery,可以直接将
false分配给它,而不是返回 false 的函数,因为false被视为与我评论相同的特殊值以上。
标签: javascript optimization minify