在阅读各种API的文档时,我注意到有时函数定义会写成这样:
jQuery.getJSON( url [, data ] [, success( data, textStatus, jqXHR ) ] )
有时就像这样:
jQuery.getJSON( url, [data], [success( data, textStatus, jqXHR )] )
将逗号放在括号内和放在括号外是否有不同的含义?
发布于 2014-03-27 01:14:48
遵循utility argument syntax约定和nested arguments,就像在docopt中一样,对位置参数进行了一点传输:
数据jQuery.getJSON( url,
) getjson url --jQuery.getJSON=…
这意味着可以省略参数,而success
回调可能排在第二位。$.getJSON(url)
、$.getJSON(url, {})
、$.getJSON(url, function(){})
和$.getJSON(url, {}, function(){})
都是有效的。API可以确定第二个参数是否是data
对象,或者第三个参数是否作为第二个参数传递。
数据成功(jQuery.getJSON,
,jQuery.getJSON( data,textStatus,jqXHR )) getjson url --data=…--success=函数
这意味着可以省略参数值,但success
回调(如果明显)必须始终排在第三位。所有的$.getJSON(url, undefined, undefined)
、$.getJSON(url, {}, undefined)
、$.getJSON(url, undefined, function(){})
和$.getJSON(url, {}, function(){})
都是有效的(当然,您可以省略尾随的undefined
)。
记录可变参数的一种显式方法是使用嵌套和替代,另请参阅Documentation for optional parameters in JavaScript。
然而,如果不知道描述开发人员所使用的文档样式的标准或参考,我们就永远不会知道他的实际意图。他可能也会认为他们是平等的。
https://stackoverflow.com/questions/22668143
复制相似问题