我们为什么使用({ })
?
是代表吗?
使用这种语法是什么意思?
我们用它包装什么?
例如:
$.ajaxSetup ({ // <-- THIS
error: fError,
compelete: fComp,
success: fSucc
}); // <-- AND THIS
Answers:
{}
是JavaScript中的对象表示法。例如:
$('selector').plugin({ option1: 'value' });
在这种情况下,您要将包含设置的对象传递给插件。该插件可以将其作为对象处理,无论它被引用为什么,例如:
settings.option1 //the option you passed in.
当然,它还有更多用途,但这是jQuery中最常见的示例。这同样适用于真正的.animate()
,$.ajax()
,.css()
函数等等凡是一般需要性质使用这种格式。
根据要求,还有其他一些示例:
传递的对象内的任何对象也可以是一个函数,而不仅仅是属性,例如:
$("<input>", {
type: "text",
focusin: function() { alert("Hi, you focused me!"); }
});
这会将输入的焦点事件设置为具有警报。另一种方法是扩展对象,并向其添加属性,如下所示:
var person = { first_name: "John" };
$.extend(person, { last_name: "Smith" });
//equivalent to:
person.last_name = "Smith";
//or:
person["last_name"] = "Smith";
现在person
具有该last_name
属性。插件也经常使用此选项,以获取默认设置,然后合并传入的任何设置,并使用您指定的任何设置覆盖,其余使用默认设置。
我们为什么要使用它? 嗯...这就是JavaScript的工作方式,并且本着jQuery的精神:这是一种极为简洁灵活的信息传递方式。
我的意思是,我们要包装什么?
否。这是JavaScript对象符号(JSON)。在您的示例中,您正在ajaxSetup
使用具有以下属性的对象调用该函数 :
error: fError,
compelete: fComp,
success: fSucc
例如,要创建“用户”对象,您可以编写:
user = {
"name":"Oscar",
"lastName":"Reyes"
};
然后使用其属性之一:
alert( a.name );
演出:奥斯卡
您在代码中看到的是对象的创建并将其作为参数传递。
等效于:
var setUpInfo = {
"error": fError,
"compelete": fComp,
"success": fSucc
};
$.ajaxSetup( setUpInfo );
:
代替=
通过Ajax发送参数时,它可以是JavaScript对象文字,或更确切地说是JSON。JSON是JavaScript对象文字的子集。
例如:
// This is JSON data sent via the Ajax request (JSON is subset of JavaScript object literals)
var json = {id: 1, first_name: "John", last_name: "Smith"};
// This is a JavaScript object literal, it is not used for transfer of data so doesn't need to be JSON
var jsol = {type: 'POST', url: url, data: json};
$.ajax(jsol);
请在此处了解更多信息:
JSON(维基百科)
如果您在这种情况下是指:
$("#theId").click( function() { /* body here */ } );
然后,( function() {})
是一个匿名函数。但是没有一个例子,就不能确定这就是你的意思。