При копании в uniform.js исходный код, который я нашел это (на линии #333):Я пытаюсь понять оптимизацию для улучшения минификация в JavaScript
/**
* Meaningless utility function. Used mostly for improving minification.
*
* @return false
*/
function returnFalse() {
return false;
}
Эта функция вызывается в некоторых местах (тенденция кажется быть в ситуациях, когда значение false
используется в JavaScript Object литерал, как это (от линии #351)
bindMany($elem, options, {
'selectstart dragstart mousedown': returnFalse
});
Но не в тех ситуациях, когда ложь явно вернувшихся. Мой вопрос, почему это говорит, чтобы улучшить смягчение? Моя первая мысль заключалась в том, что, потянув false
в функцию, функцию можно было переименовать, чтобы сказать «a», поэтому места, где ожидалось false
, могут быть представлены как a()
, но это, похоже, не дает большого преимущества тому, что я думаю, это стоимость дополнительной функции в исполнении. Что-то гораздо более очевидное, что я не понимаю об этом?
Я считаю, что лучше помещать анонимную функцию там, которая возвращает false. Из того, что я помню, у jQuery также была функция 'returnFalse()' в ядре. ** Редактирование: ** Да, он все еще работает в версии [1.9.1] (http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js). –
Ohh Я не заметил, что функция возвращалась, а не возвращаемое значение –
Очевидно, что если код делает то, что я думаю, вы привязываете обработчик к тем событиям, которые возвращают false, и возвращая false внутри обработчика события в jQuery фактически совпадает с вызовом 'event.preventDefault()' и 'event.stopPropagation()'. –