Widzę to cały czas: literały obiektów są zadeklarowane tak, że niektóre klawisze są otoczone cudzysłowami, a inne nie. Przykład z jQuery 1.4.2:Dlaczego cytowane są niektóre własności obiektowo-dosłowne, a inne nie?
jQuery.props = {
"for": "htmlFor",
"class": "className",
readonly: "readOnly",
maxlength: "maxLength",
cellspacing: "cellSpacing",
rowspan: "rowSpan",
colspan: "colSpan",
tabindex: "tabIndex",
usemap: "useMap",
frameborder: "frameBorder"
};
Jakie jest znaczenie owijania pierwsze dwa klucze posesji (for
i class
) z cytatami, pozostawiając cytat mniej innych? Czy są jakieś różnice?
Dotykałem ECMAScript 5 specification; wszystko udało mi się znaleźć to [Uwaga 6 pkt 15.12.3, podkr]:
UWAGA 6 Obiekt jest renderowany jako lewy nawias otwarcia następuje zero lub więcej właściwości, oddzielone przecinkami , zamykane prawym nawiasem. Właściwość A to cytowany ciąg reprezentujący klucz lub nazwę właściwości, dwukropek, a następnie usztywniona wartość właściwości . Tablica jest renderowana jako jako lewy nawias otwierający, a następnie zero lub więcej wartości, oddzielonych przecinkami , zamykanych za pomocą prawego wspornika.
Jednak odnosi się to wyłącznie do stringification z JSON.
Zobacz również [? Jaka jest różnica między klawiszami obiektu z cytatami i bez cytatów] (http://stackoverflow.com/questions/4348478/what-is-the-the-difference-between-object-keys-with-quotes-and-without-quotes) – Bergi
Jak to może być duplikat pytania zadawanego dziesięć miesięcy później? Odwróciliście to. – raven
@raven: Odpowiedź na drugie pytanie jest lepsza i najwyraźniej nie należy ich łączyć. Moja flaga została odrzucona. : P – Ryan