为什么我们在jQuery中使用“({})”?

为什么我们使用({ })

是代表吗?

这个语法是什么意思?

我们用什么包装呢?

例如:

 $.ajaxSetup ({ // <-- THIS error: fError, compelete: fComp, success: fSucc }); // <-- AND THIS 

{}是JavaScript中的对象表示法。 例如:

 $('selector').plugin({ option1: 'value' }); 

在这种情况下,您将包含您的设置的对象传递给插件。 插件可以把它作为一个对象来处理,不pipe它被引用为什么,例如:

 settings.option1 //the option you passed in. 

当然,它有更多的用途,但这是jQuery中最常见的例子。 .animate()$.ajax() .animate()函数等也是如此。任何需要属性的东西通常都使用这种格式。


按照要求,还有一些例子:
传递对象中的任何对象也可以是一个函数,不仅是属性,例如:

 $("<input>", { type: "text", focusin: function() { alert("Hi, you focused me!"); } }); 

这会将该input的焦点事件设置为具有警报。 另一个是扩展一个对象,添加属性,如下所示:

 var person = { first_name: "John" }; $.extend(person, { last_name: "Smith" }); //equivalent to: person.last_name = "Smith"; //or: person["last_name"] = "Smith"; 

现在personlast_name属性。 这也经常被插件使用,采取默认设置,然后合并您传入的任何设置,覆盖您指定的任何设置,使用默认设置。

我们为什么要使用它? 那么…这就是JavaScript的工作原理,以jQuery的精神:这是一个非常简洁和灵活的方式来传递信息。

我的意思是,我们正在包装它?

不,这是JavaScript对象表示法(JSON)。 在你的例子中,你正在调用函数ajaxSetup与一个对象的属性是:

 error: fError, compelete: fComp, success: fSucc 

例如,要创build一个“用户”对象,你可以写:

 user = { "name":"Oscar", "lastName":"Reyes" }; 

然后使用它的一个属性:

 alert( a.name ); 

表演:奥斯卡

你在那看到的(在你的代码中)是创build一个对象并把它作为parameter passing的。

这将相当于:

 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是Object Literal的子集

  • JavaScript对象文字

  • JSON (维基百科)

问题是关于符号“({})”。

在这种情况下,expression式(例如$ .ajaxSetup)后面的括号“(…)”会导致调用expression式指定的函数。

括号内的expression式(可能是逗号分隔的expression式列表)会产生一个值(或一个值列表),它是传递给函数的参数。

最后,当在expression式上下文中使用“{…}”时,它会用指定的名称 – 值属性构造一个对象。 这就像JSON,但更一般地说,它是任何合法的JS对象文字。

如果你的意思是在这种情况下:

 $("#theId").click( function() { /* body here */ } ); 

那么( function() {})是一个匿名函数。 但没有一个例子,不能确定这是你的意思。