我发布这个,因为我深入研究了JavaScript和jQuery。以下代码
$(function() {
alert('instance');
});
$(alert('hi'));
按顺序发出“hi”和“instance”!我确信对js的想法有一个理解,因为我认为这将是“实例”和“嗨” - 任何人都可以解释这一点吗?谢谢
我发布这个,因为我深入研究了JavaScript和jQuery。以下代码
$(function() {
alert('instance');
});
$(alert('hi'));
按顺序发出“hi”和“instance”!我确信对js的想法有一个理解,因为我认为这将是“实例”和“嗨” - 任何人都可以解释这一点吗?谢谢
$(function() { ... })
第二种情况是$(document).ready(function() { ... })
别名你的第二个是有点无厘头和评估的东西像这样:
警报“嗨”,然后创建返回值(我相信undefined
)
$(function(){})
是$(document).ready(function(){})的快捷方式,这意味着$(function(){})
中的代码执行将被延迟,直到文档被完全加载。
这里的代码执行顺序将会像
$(function(){})
得到执行,导致注册文档准备回调$(alert('hi'));
得到执行,这里alert('hi')
得到执行,导致弹出式窗口,它返回一个未定义的值到将忽略它的jQuery。instance
的代码之间的区别在于你是不是立刻执行功能的第一种情况下执行,要传递的功能一个参数给jQuery(因为在函数定义之后没有()
)。 在你调用alert('hi')
这将导致立即调用alert
然后的alert
返回的值传递给jQuery的
我相信他失踪的部分是他对$()的第二次调用正在传递警报的结果。 – 2013-04-29 12:42:32
的jQuery对象当你做
$(function() {
alert('instance');
});
,一个函数创建了会提醒“实例”,则函数传递给jQuery的($
)。 JQuery会记住该函数,并在加载DOM树时调用该函数。这是$(document).ready(function(){...})
的别名。
当你
$(alert('hi'));
alert('hi')
立即调用,并且返回值将被传递给jQuery的。在“当DOM树加载完成”之前,“立即”机会就会发生。
我测试过的每个地方,alert
返回undefined
。据我所知,将undefined
传递给jQuery并没有明显的效果。
谢谢,$(something)=== $(document).ready(something)是我需要知道的事实 – 2013-04-29 18:23:08