是否可以將reserved word
用作對象的屬性名稱?使用保留字作爲屬性名稱,重新訪問
此問題在之前的間接提及的stackoverflow question中提出。答案似乎是普遍的共識由@Squeegy:
您可以使用這些詞,但只是作爲字符串,而不是簡寫屬性 -幫忙,給一個鏈接到 list of reserved wordsfoo["class"]
涼爽,而foo.class
不
,而我認爲,@ Squeeky可能比我更瞭解在這方面,它可能是一個壞主意在某些情況下使用保留的話,我認爲他的結論是錯誤的基於兩點:保留字
測試使用它們作爲「速記」屬性
的HTMLFormElement使得不可能不使用保留字中「的簡寫」
首先,使用保留字列表,每個溶液中加入作爲屬性到Object
和HTMLElement
,既作爲obj["word"]
和obj.word
,然後檢索爲obj["word"]
和obj.word
。在63個案例中,所有八個測試都正常工作。
其次,HTMLFormElement使這項工作成爲必要,因爲它使用簡寫符號在其元素中進行檢索。如果<input name='typeof' value='scalar' />
是表單的元素,則form.typeof
==「標量」。
根據我的經驗,保留字通常是數據造成的(例如,名爲「private」的列),而不是程序造成的。因此,它們會污染JSON對象,並從那裏輸入,並從那裏HTMLFormElement。簡單地說,沒有大量的(不必要的)工作,不可能保留保留字而不是被迫以正確的速度正常工作。
在我看來,這些現實的問題:
護理需要進行不採取與現有性能發生衝突,而不是保留字
(許多,如果不是全部)變量不能保留字
使用保留字作爲屬性可以(但不一定)令人困惑
是這個結論正確,那麼,該保留字作爲屬性名稱,並訪問它們無論是作爲字符串或簡寫,是就好了 - 只要稍有常識的人被應用到的情況呢?
是什麼意思'form.typeof '?我的意思是,它與HTMLFormElement有什麼關係? JS對象的屬性至少可以通過'['prop']'和點記法'.prop'兩種方式來訪問。這與HTMLFormElement或DOM API或其他任何內容無關。 'form ['typeof']'絕對正常 – user907860