Ich sehe dies die ganze Zeit: Objektliterale so deklariert, dass einige Schlüssel mit Anführungszeichen umgeben sind und andere nicht. Ein Beispiel von jQuery 1.4.2:Warum werden einige Objekt-Literal-Eigenschaften zitiert und andere nicht?
jQuery.props = {
"for": "htmlFor",
"class": "className",
readonly: "readOnly",
maxlength: "maxLength",
cellspacing: "cellSpacing",
rowspan: "rowSpan",
colspan: "colSpan",
tabindex: "tabIndex",
usemap: "useMap",
frameborder: "frameBorder"
};
Welche Bedeutung hat die ersten beiden Eigenschaftsschlüssel der Verpackung (for
und class
) mit Zitaten, während die anderen verlassen Zitat weniger? Gibt es irgendwelche Unterschiede?
Ich habe Stochern um die ECMAScript 5 specification; alles, was ich habe in der Lage zu finden ist [Anmerkung 6 von Abschnitt 15.12.3, Hervorhebung von mir]:
HINWEIS 6 Ein Objekt als Öffnung linker geschweifte Klammer, gefolgt von null oder mehr Eigenschaften wiedergegeben wird, getrennt mit Kommas, mit einer rechten Klammer geschlossen. Eine -Eigenschaft ist eine in Anführungszeichen gesetzte Zeichenfolge , die den Schlüssel- oder Eigenschaftsnamen, einen Doppelpunkt und dann den stringifizierten Eigenschaftswert darstellt. Ein Array wird als öffnende linke Klammer gefolgt von null oder mehr Werte, getrennt mit Kommas, mit einer rechten Klammer geschlossen gerendert.
Jedoch bezieht sich dies nur auf die stringification von JSON.
Siehe auch [? Was ist der Unterschied zwischen Objektschlüssel mit Zitaten und ohne Anführungszeichen] (http://stackoverflow.com/questions/4348478/Was ist der Unterschied zwischen Objektschlüsseln mit Anführungszeichen und ohne Anführungszeichen? – Bergi
Wie kann das ein Duplikat einer Frage sein, die zehn Monate später gestellt wurde? Ihr habt es zurückbekommen. – raven
@raven: Die Antwort auf die andere Frage ist besser und anscheinend sollten sie nicht zusammengeführt werden. Meine Flagge wurde abgelehnt. : P – Ryan