3

uniform.jsソースコードを掘り下げているときに、これを見つけました (行#333 ):

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

この関数はいくつかの場所で呼び出されます (傾向は、falseこのような JavaScript オブジェクト リテラルで値が使用される状況のようです (行#351から)

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

ただし、 false が明示的に返される状況ではそうではありません。私の質問は、なぜこれがミニフィケーションを改善すると言われているのですか? 私が最初に考えたのは、関数にプルすることで、関数の名前を「a」に変更できるので、期待されるfalse場所を として表すことができるということでしたが、これは私が考えるものにはあまり利点がないようです実行時の余分な機能のコスト。これについて私が理解していないことがもっと明白なことはありますか?falsea()

4

1 に答える 1

6

あなたの例returnFalseでは、呼び出されず、渡されていることに注意してください。提供されたイベントのデフォルトの動作を防ぐために使用されています。

デフォルトの動作を防ぐためのユーティリティ関数を使用するこの手法により、同じことを複数回行うために新しい無名関数を作成する必要がなくなります。

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

$('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);
于 2013-02-13T22:05:24.660 に答える