编程语言
首页 > 编程语言> > 我正在尝试理解用于改进JavaScript缩小的优化

我正在尝试理解用于改进JavaScript缩小的优化

作者:互联网

在深入研究uniform.js源代码的过程中,我发现了这一点(在#333线上):

/**
* Meaningless utility function. Used mostly for improving minification.
*
* @return false
*/
function returnFalse() {
  return false;
}

在某些地方调用此函数(趋势似乎是在像这样的JavaScript Object Literal中使用false值的情况下(来自第#351行)

bindMany($elem, options, {
  'selectstart dragstart mousedown': returnFalse
});

但不是在明确返回false的情况下.我的问题是为什么要说改善缩小?我的第一个想法是,通过将false拉入函数,函数可以重命名为’a’,因此预期false的位置可以表示为a(),但这似乎没有提供太大的好处我认为是执行中额外功能的成本.我有什么不明白的事情吗?

解决方法:

你应该注意,在你的例子中,returnFalse没有被调用,它被传递了.它用于防止提供事件的默认行为.

这种具有实用程序功能以防止默认行为的技术可以防止需要创建新的匿名函数来多次执行相同的操作:

$('foo').on('something', function () {
    return false;
});
//minified to something like:
$(a).on(b,function(){return !1});

VS

$('foo').on('something', returnFalse); 
//minified to something like:
function c(){return !1}
$(a).on(b,c);

总而言之,这是一种误导的缩小手段,因为jQuery允许传递false代替事件处理程序以防止默认行为:

$('foo').on('something', false);
//minified to something like:
$(a).on(b,!1);

标签:javascript,optimization,minify
来源: https://codeday.me/bug/20190825/1723741.html