1

我认识到这个问题可能与 Javascript 函数的一般运作方式有关(而不仅仅是我的特殊情况),但是......

我想知道我的文档准备功能如何......嗯......功能。在程式化的形式中,它如下所示:

$(function () {
    object1.init();
    object2.init();
    object3.init(); etc...

object2.init() 只会在 object1.init() 返回时触发吗?还是它们都会以异步方式触发?

更新:如果它们按顺序触发,有什么方法可以让它们同时运行(我可能不需要这样做)?

谢谢。

4

2 回答 2

3

object2.init() 只会在 object1.init() 返回时触发吗?还是它们都会以异步方式触发?

object2.init() 仅在 object1.init() 返回时触发。
所有函数都存储在一个队列中,并一个接一个地被触发。

没有办法让它们同时开火。
不只是 jQuery,而且 javascript 也不支持并行编程。


你可以看到jQuery源代码:

更新:我删除了实际代码,因为答案变成了一个迷你 jQuery 源代码......)

// Handle when the DOM is ready
ready: function(wait) {
    ...

// Call all callbacks with the given context and arguments
fireWith: function(context, args) {
    ...

jQuery.Callbacks = function( flags ) {  
    ...

// The deferred used on DOM ready
readyList,

检查jQuery 源代码中的那些函数和变量

于 2012-05-06T09:57:02.597 回答
2

它将按顺序运行。

如果其中一个init()进行异步调用,那显然是异步的,但每个函数(或实际上的任何行)将依次​​运行。

于 2012-05-06T09:58:33.077 回答