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
javascript
jquery
json
uzay95
quelle
quelle
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
person
hat dielast_name
Eigenschaft. 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.
quelle
Nein, das ist die JavaScript-Objektnotation (JSON). In Ihrem Beispiel rufen Sie die Funktion
ajaxSetup
mit 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:
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 );
quelle
:
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:
JSON ist eine Teilmenge des Objektliteral
JavaScript-Objektliteral
JSON (Wikipedia)
quelle
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.
quelle
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.quelle