Когда функция объединяется в цепочку в JQuery, каков порядок операций?
Пример 1
$(selector).fun1(val,{fun2(){ }}
Пример 2
$(selecter).fun1().fun2().fun3()
Слева направо. fun3 ()
запускается для результата (= возвращаемое значение) fun2 ()
, fun2 ()
для результата fun1 ()
.
Такой вид цепочки может быть выполнен в JQuery, потому что каждая объединяемая в цепочку функция возвращает объект / элемент, для которого она была вызвана.
Итак, $ (selector) .fun1 ()
возвращает элемент $ (selector)
после выполнения. fun2 ()
вызывается из этого возвращенного элемента и так далее.
В этом примере:
$(selector).fun1(val,{fun2(){ }}
Второй параметр для функции один - это функция обратного вызова . Это означает, что fun1
выполняет ЗАТЕМ fun2
выполняет.
В этом примере:
$(selecter).fun1().fun2().fun3()
Все функции запускаются как можно быстрее, если у них есть длительность, например, анимация. В противном случае они выполняются в порядке fun1
, fun2
, fun3
.
Таким образом, с анимацией fun1
, fun2
и fun3
будут 3 одновременными перекрывающимися анимациями, но с другими синхронными операциями они просто выполняются по порядку.