鉴于只有$.get
的第一个参数是强制性的:
$.get(URL,data,function(data,status,xhr),dataType)
在这两个示例中,jQuery / Javascript如何将给定参数映射到正确的声明参数?
$.get("test.php", { name:"Donald", town:"Ducktown" });
$.get("test.php", function(data){
alert("Data: " + data);
});
来自http://www.w3schools.com/jquery/ajax_get.asp
在Python中,如果跳过订单,则必须按名称调用参数。但是jQuery如何处理呢?
答案 0 :(得分:2)
但是jQuery如何处理呢?
请查看the code:
jQuery[ "get" ] = function( url, data, callback, type ) {
// shift arguments if data argument was omitted
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = undefined;
}
return jQuery.ajax({
url: url,
type: "get",
dataType: type,
data: data,
success: callback
});
};
答案 1 :(得分:1)
它验证参数的输入并相应地执行操作。
答案 2 :(得分:1)
在JavaScript中,有两件事可以实现:arguments
类似数组的对象和typeof
运算符。所有函数都有一个名为arguments
的类数组对象。您可以通过它访问传递给函数的所有参数,即使它们未在参数列表中命名。其次,您可以使用typeof
运算符来确定参数的类型(object
,function
,string
等)。因此,jQuery使用arguments
数组检测所有参数,然后使用typeof
确定哪些参数。
答案 3 :(得分:1)
扩展@ Bergi的答案:
和isFunction()
看起来像:
isFunction: function( obj ) {
return jQuery.type(obj) === "function";
}
并展开,jQuery.type()
看起来像:
type: function( obj ) {
if ( obj == null ) {
return String( obj );
}
return typeof obj === "object" || typeof obj === "function" ?
class2type[ core_toString.call(obj) ] || "object" :
typeof obj;
}
您可以查看最新的jquery来源here