Warum verwenden wir ({ })?
Ist es delegiert?
Was bedeutet es, diese Syntax zu verwenden?
Was wickeln wir damit ein?
Zum Beispiel:
$.ajaxSetup ({ // <-- THIS
error: fError,
compelete: fComp,
success: fSucc
}); // <-- AND THIS
Warum verwenden wir ({ })?
Ist es delegiert?
Was bedeutet es, diese Syntax zu verwenden?
Was wickeln wir damit ein?
Zum Beispiel:
$.ajaxSetup ({ // <-- THIS
error: fError,
compelete: fComp,
success: fSucc
}); // <-- AND THIS
Antworten:
{}ist die Objektnotation in JavaScript. Zum Beispiel:
$('selector').plugin({ option1: 'value' });
In diesem Fall übergeben Sie ein Objekt mit Ihren Einstellungen an das Plugin. Das Plugin kann dies als Objekt behandeln, unabhängig davon, worauf es verweist, zum Beispiel:
settings.option1 //the option you passed in.
Natürlich hat es viel mehr Verwendungsmöglichkeiten, aber dies ist das häufigste Beispiel in jQuery. Das gleiche gilt für die .animate(), $.ajax(), .css()Funktionen usw. Alles , was Eigenschaften allgemein verwendet dieses Format erfolgt.
Auf Wunsch einige andere Beispiele:
Jedes Objekt innerhalb des übergebenen Objekts kann auch eine Funktion sein, nicht nur Eigenschaften, zum Beispiel:
$("<input>", {
type: "text",
focusin: function() { alert("Hi, you focused me!"); }
});
Dies würde das Fokusereignis dieser Eingabe so einstellen, dass eine Warnung angezeigt wird. Eine andere Möglichkeit besteht darin, ein Objekt zu erweitern und ihm Eigenschaften hinzuzufügen:
var person = { first_name: "John" };
$.extend(person, { last_name: "Smith" });
//equivalent to:
person.last_name = "Smith";
//or:
person["last_name"] = "Smith";
Jetzt personhat die last_nameEigenschaft. Dies wird häufig auch von Plugins verwendet, um die Standardeinstellungen zu übernehmen und dann alle übergebenen Einstellungen zusammenzuführen, mit den von Ihnen angegebenen Einstellungen zu überschreiben und für den Rest die Standardeinstellungen zu verwenden.
Warum benutzen wir es? Nun ... so funktioniert JavaScript und im jQuery-Sinne: Es ist eine äußerst knappe und flexible Möglichkeit, Informationen weiterzugeben.
Ich meine, was verpacken wir?
Nein, das ist die JavaScript-Objektnotation (JSON). In Ihrem Beispiel rufen Sie die Funktion ajaxSetupmit einem Objekt auf, dessen Eigenschaften sind:
error: fError,
compelete: fComp,
success: fSucc
Um beispielsweise ein "Benutzer" -Objekt zu erstellen, können Sie Folgendes schreiben:
user = {
"name":"Oscar",
"lastName":"Reyes"
};
Und dann verwenden Sie eines seiner Attribute:
alert( a.name );
Shows: Oscar
Was Sie dort (in Ihrem Code) sehen, ist die Erstellung eines Objekts und dessen Übergabe als Argument.
Es wäre gleichbedeutend mit:
var setUpInfo = {
"error": fError,
"compelete": fComp,
"success": fSucc
};
$.ajaxSetup( setUpInfo );
:anstelle von=
Es ist entweder ein JavaScript-Objektliteral oder genauer JSON, wenn es darum geht, Parameter über Ajax zu senden. JSON ist eine Teilmenge von JavaScript-Objektliteralen.
Zum Beispiel:
// 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);
Bitte lesen Sie hier mehr darüber:
Die Frage betraf die Notation "({})".
In diesem Zusammenhang wird durch die Klammern "(...)" nach einem Ausdruck wie $ .ajaxSetup die vom Ausdruck angegebene Funktion aufgerufen.
Der Ausdruck in den Klammern (dies kann eine durch Kommas getrennte Liste von Ausdrücken sein) führt zu einem Wert (oder einer Liste von Werten), bei dem es sich um die an die Funktion übergebenen Argumente handelt.
Wenn "{...}" in einem Ausdruckskontext verwendet wird, wird schließlich ein Objekt mit den angegebenen Name-Wert-Eigenschaften erstellt. Dies ist wie JSON, aber im Allgemeinen ist es jedes legale JS-Objektliteral.
Wenn Sie in diesem Zusammenhang meinen:
$("#theId").click( function() { /* body here */ } );
Dann ( function() {})ist das eine anonyme Funktion. Aber ohne ein Beispiel kann ich nicht sicher sein, ob Sie das meinen.