2 Stimmen

Brauche Hilfe, um die Verwendung von ":" in JavaScript zu verstehen

Ich verwende jQuery validieren Plugin, und wenn ich traf das folgende Skript, erkenne ich, dass ich nicht verstehen, viele Dinge in jQuery:)

Bitte schauen Sie

$("#invitationform").validate({
        rules: 
        {
            phone: 
  • Posten auflisten

            {
                required: true,
                minlength: 6,
                number:true
            }
        },
        messages: 
        {
            phone: 
            {
                required: "Please enter a phone number",
                minlength: "Your number must consist of at least 6 digits"
            }
        }
    });

Bitte helfen Sie mir zu verstehen, wer sind "Regeln" y "Telefon" hier? Sind sie so etwas wie Listenelemente, oder sind sie Variablen des Objekts? Und warum rufen wir sie über : ?

Kurze Erklärungen oder Links zur Dokumentation wären sehr hilfreich.

Vielen Dank!

13voto

Daniel Vassallo Punkte 325264

Abgesehen von den wenigen primitiven Typen (Zahlen, Strings, Booleans, null und undefiniert) ist in JavaScript alles ein Objekt (auch Funktionen).

Objekte sind im Grunde Container mit Eigenschaften, die sich sehr gut zum Sammeln und Organisieren von Daten eignen.

Eine beliebte Methode zur Erstellung von Objekten ist die Verwendung der Objektliteralnotation wobei der Eigenschaftsname vom Wert durch einen Doppelpunkt getrennt ist : Symbol:

var myFirstObject = {
   'name': 'Bobby',
   'surname': 'Smith'
};

Die Anführungszeichen um Eigenschaftsnamen sind optional, wenn der Name ein legaler JavaScript-Bezeichner und kein reserviertes Wort ist. Der Name einer Eigenschaft kann eine beliebige Zeichenkette sein. Objekte können andere Objekte enthalten, so dass sie leicht Bäume oder Diagramme darstellen können:

var myFlight = {
   'airline': 'Airline Name',
   'number': 'AN700',
   'departure': {
      'IATA': 'SYD',
      'time': '2010-09-04 23:10:00'
   },
   'arrival': {
      'IATA': 'LAX',
      'time': '2010-09-05 05:14:00'
   }      
};

JavaScript-Objekte sind auch eine praktische Hash-Tabelle Datenstruktur. Sie könnten einfach folgendes tun:

var myHashTable = {};
myHashTable['name'] = 'Bobby';
myHashTable['surname'] = 'Smith';
// subscript notation:
alert(myHashTable['name'] + ' ' + myHashTable['surname']);
// dot notation: (equivalent)
alert(myHashTable.name + ' ' + myHashTable.surname);

jQuery und viele andere JavaScript-Bibliotheken erwarten oft ein Objekt als Argument für eine Methode. Um Ihnen ein Beispiel aus einer anderen Bibliothek zu geben: So wird eine Karte mit der Methode Google Maps API v3 :

var map = new google.maps.Map(document.getElementById('map'), { 
   mapTypeId: google.maps.MapTypeId.ROADMAP,
   center: new google.maps.LatLng(39.904667, 116.408198),
   zoom: 12
});

Beachten Sie, dass wir aufgrund der Funktionsweise von JavaScript problemlos lesbare komplexe Strukturen als Funktionsargumente übergeben können.

0 Stimmen

Außerdem sind die Notation der Hashtabelle (x['y']) und die Punktnotation (x.y) gleich, so dass myHashTable.name === myHashTable['name'].

1voto

Ender Punkte 14695

Das ist eigentlich nicht spezifisch für jQuery, sondern ist in der Tat JSON (das ist nur ein Teil von Vanilla JavaScript. Wie pygorex angemerkt hat, handelt es sich um Objektliterale, d. h. um die Eigenschaftsnamen eines Objekts.

Das bedeutet, dass Sie, wenn Sie zum Beispiel ein Objekt mit dieser Notation erstellen, anstatt es an eine Funktion zu übergeben, die darin enthaltenen Werte aufrufen können. Zum Beispiel, wenn Sie dies tun:

var options = {
    rules: 
    {
        phone: 
        {
            required: true,
            minlength: 6,
            number:true
        }
    },
    messages: 
    {
        phone: 
        {
            required: "Please enter a phone number",
            minlength: "Your number must consist of at least 6 digits"
        }
    }
};

Sie könnten dann etwa so vorgehen:

var isPhoneRequired = options.rules.phone.required;

jQuery verwendet diese Struktur häufig, um eine bequeme Methode zur Übergabe einer Vielzahl von Parametern an eine Plugin-Funktion zu ermöglichen. Es ist praktisch, weil Sie viele Optionen übergeben können, während Sie nur einen Parameter im Funktionsaufruf angeben, und Sie können leicht Standardwerte festlegen, die nur überschrieben werden, wenn ein alternativer Wert vom Aufrufer angegeben wird.

0voto

leepowers Punkte 36580

rules y phone son Javascript Objekt-Literale .

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