为什么我们使用({ })
?
是代表吗?
使用这种语法意味着什么?
我们用它包装什么?
例如:
$.ajaxSetup ({ // <-- THIS
error: fError,
compelete: fComp,
success: fSucc
}); // <-- AND THIS
答案 0 :(得分:157)
{}
是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的精神:它是一种非常简洁灵活的传递信息的方式。
答案 1 :(得分:10)
我的意思是,我们正在包装它?
没有。这是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 );
答案 2 :(得分:7)
在通过Ajax发送参数时,它是JavaScript object literal或更具体的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);
请在此处详细了解:
答案 3 :(得分:6)
问题是关于“({})”的符号。
在此上下文中,括号“(...)”跟在表达式后面,例如$ .ajaxSetup,会导致调用表达式指定的函数。
括号内的表达式(可以是逗号分隔的表达式列表)会产生一个值(或值列表),它是传递给函数的参数。
最后,当在表达式上下文中使用“{...}”时,它构造一个具有指定的name-value属性的对象。这就像JSON,但更常见的是,它是任何合法的JS对象文字。
答案 4 :(得分:4)
如果你的意思是在这个背景下:
$("#theId").click( function() { /* body here */ } );
然后( function() {})
是一个匿名函数。但是没有一个例子,不能确定你的意思。