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

时间:2010-04-07 18:00:56

标签: javascript jquery json

为什么我们使用({ })

是代表吗?

使用这种语法意味着什么?

我们用它包装什么?

例如:

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

5 个答案:

答案 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() {})是一个匿名函数。但是没有一个例子,不能确定你的意思。