Czy jako nazwę właściwości obiektu można użyć reserved word
?używając słów zastrzeżonych jako nazw właściwości, ponownie odwiedzono
Ten problem został zgłoszony pośrednio poprzednio pod numerem stackoverflow question. Odpowiedź wydawała ogólny konsensus przez @Squeegy:
Można użyć tych słów, ale tylko jako ciągi, a nie właściwości skrót -pomocny dając linka do list of reserved wordsfoo["class"]
jest cool, natomiastfoo.class
nie jest
natomiast myślę, że @ Squeeky jest prawdopodobnie bardziej kompetentny niż ja w tej dziedzinie i to chyba zły pomysł używać słów zastrzeżonych w niektórych sytuacjach, myślę, że jego wniosek jest niewłaściwy w oparciu o dwa punkty:
testowania słów zastrzeżonych używanie ich jako "skróconych" właściwości
HTMLFormElement uniemożliwia nie używać słów zastrzeżonych w „skrót”
Po pierwsze, przy użyciu zastrzeżonego listę słów, z których każdy został dodany jako właściwość do Object
i HTMLElement
, zarówno jako obj["word"]
i obj.word
, a następnie pobrane jako obj["word"]
i obj.word
. W każdym z 63 przypadków wszystkie osiem testów działało poprawnie.
Po drugie, HTMLFormElement wymaga tego, ponieważ pobiera w swoich elementach za pomocą notacji skróconej. Jeśli <input name='typeof' value='scalar' />
jest elementem formularza, to form.typeof
== "skalarny".
Z mojego doświadczenia wynika, że słowa zastrzeżone to zazwyczaj dane (np. Kolumna "prywatna"), a nie program. Jako takie zanieczyszczają obiekty JSON, a stamtąd INPUT, a stamtąd HTMLFormElement. Mówiąc prosto, bez dużej ilości (niepotrzebnych) prac, niemożliwe jest zachowanie zastrzeżonych słów , a nie, które są zmuszane do poprawnej pracy w skrócie.
Wydaje mi się te prawdziwe problemy:
opieka musi być nie podjęte w sprzeczności z istniejącymi właściwości, a nie słowa zastrzeżone
(wielu, jeśli nie wszystkich) zmienne nie może być zarezerwowane słowa
użycie zarezerwowanych słów, ponieważ właściwości mogą być (ale niekoniecznie) wprowadzają w błąd
Czy ten wniosek poprawny wówczas, że zarezerwowane słowa jako nazwy własności, a dostęp do nich zarówno jako ciągi lub skrót, jest po prostu w porządku - tak długo, jak trochę zdrowego rozsądku jest stosowany do sytuacji?
Co to znaczy 'form.typeof '? Mam na myśli, jak to jest związane z HTMLFormElement? Właściwość obiektu JS można uzyskać na co najmniej dwa sposoby '['prop']' oraz z notacją kropkową '.prop'. A to nie ma nic wspólnego z HTMLFormElement lub DOM API lub czymkolwiek innym. 'form ['typeof']' jest absolutnie normalne – user907860