Когда я должен вызывать анонимные функции через jQuery и когда через обычный JavaScript?

StackOverflow https://stackoverflow.com/questions/19847531

Вопрос

Я задавался вопросом, в чем разница в использовании jQuery или не использовать его, может рассматривать следующую задачу. Я еще не нашел ответа.

jQuery:

jQuery(function() { alert("Hello World!"); })
$(function() { alert("Hello World!"); })

Pure JavaScript:

(function() { alert("Hello World!"); })()

В чем разница? Когда мне следует использовать какой подход? Благодарю вас!

Это было полезно?

Решение

В целом, $(function() { alert("Hello World!"); }) ждет $(document).ready() и другая функция ( Iife) сразу же.

Но обернутая функция jQuery является очень специфическим вариантом использования (ожидая DOM, используя jQuery); В остальном два примера не связаны. Не путайте их как 2 версии одного и того же.

Другие советы

$(function(){
  alert("hello world");
});

короткая рука для:

$(document).ready(function(){
    alert("hello world");
});

Таким образом, это будет выполнено после загрузки DOM.

В то время как ваш чистый JS будет выполнен до загрузки DOM.

Версия jQuery привязан к выполнению после загрузки DOM. Вид только в закрытии выполняется, как только оно определено. Поэтому, если вы хотите, чтобы он немедленно выполнил, используйте вторую версию, если она должна подождать, пока все не будет загружено, используйте первую.

По крайней мере, это то, что у меня есть от головы.

Основное отличие состоит в том, что функции jQuery выполняются после загрузки DOM. И функция Lambda Pure JavaScript выполняется немедленно (в его контексте).

Вторая функция jQuery является сокращением для первого.

Вы все еще можете поместить функцию лямбды JavaScript в обертку jQuery. Это будет означать, что функция лямбда будет выполняться сразу после загрузки DOM (благодаря этому, позаботящимся об этом).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top