Функция самостоятельного вызова в качестве готового обратного вызова JQuery Ducument
В чем разница между
$(function() {
// bind some event listeners
});
а также
$(function() {
// bind some event listeners
}());
4 ответа
$(function() {
// bind some event listeners
});
В вышеприведенном случае функция передается в jquery, который будет выполнен, когда документ будет готов.
$(function() {
// bind some event listeners
}());
В вышеприведенном случае возврат функции передается в jquery. Поскольку функция сама выполняет себя, она будет выполнена немедленно, и все, что возвращает функция, будет передано в jquery, так что это не очень хороший способ, потому что цель состоит в том, чтобы выполнить функцию, как только документ будет готов, чего в этом не происходит. дело
$(function(){...}); OR $(document).ready(function(){ ... });
Эта функция вызывается, когда DOM готов, что означает, что вы можете начать запрашивать элементы, например. .ready() будет использовать разные способы в разных браузерах, чтобы убедиться, что DOM действительно готов.
(function(){ ... })();
Это не что иное, как функция, которая вызывает себя как можно скорее, когда браузер интерпретирует ваш JavaScript. Таким образом, очень маловероятно, что вы можете успешно воздействовать на элементы DOM здесь.
$(function() { ... });
это просто сокращение jQuery для:
$(document).ready(function() { ... });
Выражение функции, вызываемое немедленно (или IIFE), вместо этого является выражением "немедленно выполнено", соглашение заключено в круглые скобки, но каждый вид выражения выполняется немедленно, см. Следующие функции IIFE:
(function() {
console.log("IIFE 1");
}());
+function() {
console.log("IIFE 2");
}();
1-function() {
console.log("IIFE 3");
}();
var f = 50 * function() {
console.log("IIFE 4");
}();
Я надеюсь, это было ясно, пока.
$(function() {
// bind some event listeners
});
Этот будет выполняться только тогда, когда DOM полностью загружен, это ярлык для:
$(document).ready(function(){
// Write code here
});
$(function() {
// bind some event listeners
}());
Это то же самое, но функция внутри $()
является самопризывающей функцией. Обычно цель состоит в том, чтобы предотвратить конфликты имен переменных, потому что это создает новую область видимости.