为什么我们在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";
现在person
有last_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() {})
是一个匿名函数。 但没有一个例子,不能确定这是你的意思。