3 Stimmen

JavaScript Doppelpunkt-Operator

Ich versuche, JavaScript zu lernen. Nachdem ich diese Seite gelesen habe: Was bedeutet ':' (Doppelpunkt) in JavaScript?

Ich habe versucht, die

var store = new dojo.data.ItemFileReadStore({
         url: "countries.json"
 });

mit

var store = new dojo.data.ItemFileReadStore();
        store.url = "countries.json";

Das funktioniert nicht. Kann mich jemand auf den Fehler hinweisen oder die korrekte Verwendung des Operators Colon erklären? Danke!

9voto

Rudu Punkte 15306

Das ist kein fairer Vergleich, auch wenn Sie schon fast so weit sind.

var store = new dojo.data.ItemFileReadStore({
         url: "countries.json"
 });
//Creates a new store object, passing an anonymous object in with URL
// property set to "countries.json"

Die Alternative ohne den Doppelpunkt lautet:

var props={};
props.url="countries.json"
var store = new dojo.data.ItemFileReadStore(props);
//Does same as above but doesn't use :

Dies ist jedoch nicht die einzige Verwendung von : in JavaScript kann es aber auch im ternären Operator verwendet werden ( alert(b==c?'equal':'not equal'); ) und in Etiketten (zum Beispiel in case Erklärungen)

2voto

Tomasz Kowalczyk Punkte 10385

Die ersten Durchgänge url Parameter an den so genannten Konstruktor oder das Objekt, der damit etwas unter der Haube tun kann - zum Beispiel ihn einer anderen Variablen oder Eigenschaft zuweisen, zum Beispiel "url2".

Die zweite ordnet url Eigenschaft dieses Objekts und Sie wissen nicht, ob sie verwendet wird.

1voto

Pradeep Punkte 1254

Im ersten Code erstellen Sie ein neues Objekt und übergeben es als Argument an die Funktion.

Im zweiten Teil führen Sie die Funktion aus und stellen dann die Eigenschaft des Speicherobjekts ein. Sie sind völlig unterschiedliche Sache, wie Sie nicht Funktion mit Argument aufrufen, so könnte es nicht richtig ausgeführt werden. und Sie sind die Rückgabe der Funktion zum Objekt. nicht Eigenschaft einstellen.

0voto

Dave Ward Punkte 58382

In diesem Fall wird das Objektliteral in Ihrem ersten Beispiel verwendet, um eine Reihe von Optionen an den Konstruktor zu übergeben. Das Konstruieren der ItemFileReadStore und dann zu versuchen, diese Optionen zu setzen, ist möglicherweise nicht äquivalent, da es sie braucht, um das Objekt überhaupt zu erstellen.

Sie müssten etwa so vorgehen, um Folgendes zu ersetzen : con = :

var options = {};

options.url = 'countries.json';

var store = new dojo.data.ItemFileReadStore(options);

0voto

Robert Punkte 20690

Wenn der zweite Weg nicht funktioniert, geben Sie wahrscheinlich kein Objekt mit new dojo.data.ItemFileReadStore(); was Sie daran hindert, sie mit der Punktsyntax zu erweitern. Wenn Sie ein Objekt haben, funktioniert das Hinzufügen auf diese Weise problemlos.

Bearbeiten: Falsch gelesen, in einem sind Sie ein Argument übergeben, in der anderen sind Sie auf den Rückgabewert zuweisen, so zwei verschiedene Dinge, ich werde die oben als FYI verlassen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X