我对调用$.get JSON的“干净”方式感到困惑. 根据the documentation,概要是: jQuery.getJSON( url [, data ] [, success ] ) 其中data是“使用请求发送到服务器的普通对象或字符串”,成功是“如果请求成
根据the documentation,概要是:
jQuery.getJSON( url [, data ] [, success ] )
其中data是“使用请求发送到服务器的普通对象或字符串”,成功是“如果请求成功则执行的回调函数”.
根据我的经验,在实践中通常不需要数据参数,在这种情况下我将$.getJSON称为
$.getJSON( some_url, {}, function(response) { /* do something */ });
也就是说,我只是将一个空对象作为数据传递.但是,我也见过人们使用
$.getJSON( some_url, function(response) { /* do something */ });
这很令人困惑,因为看起来回调函数作为数据对象传递.但似乎工作得很好.
怎么运作? jQuery“聪明”是否足以理解第二种语法,即使它并不严格符合规范?在这两个电话中发生的事情是否有效?两者之间,还有一种首选方式吗?
Is jQuery “clever” enough to understand the second syntax,
是; getJSON中有代码来检测其参数的类型并以这种方式对其进行排序.
even though it doesn’t strictly correspond to the specification
确实如此.你引用的故事大纲明确地说明了这一点!方括号中的方括号([])表示可选参数.在这种情况下,两个参数都是独立可选的:您可以提供其中一个,或两个,或两者都不提供.
Is there effectively some difference in what happens in those two calls?
没有.
Between the two, is there a preferred way?
没有.