Oggetto personalizzato Javascript - Identificatore previsto in IE
-
27-10-2019 - |
Domanda
Sono nuovo nella creazione di oggetti personalizzati in JavaScript, quindi potrebbe essere facilmente qualcosa di semplice.
Ho questi oggetti:
function jsonObj(_id,_title,_class,_icon)
{
this.attr = new jsonAttrObj(_id,_title,_class);
this.data = new jsonDataObj(_title,_icon);
this.children = new Array();
};
function jsonAttrObj(_id, _title, _class)
{
this.id = _id;
this.title = _title;
this.class = _class;
};
function jsonDataObj(_title, _icon)
{
this.title = _title;
this.icon = _icon;
};
Lo chiamo usando var jsonObject = new jsonObj(id,title,class,icon);
, tutti essendo string vars.
Funzionano bene in Chrome e Firefox, ma non in IE (8).IE presenta l'errore: Expected Identifier.
Soluzione
Non è possibile utilizzare la parola chiave riservata "classe" come nome di una variabile o di una proprietà.La cosa divertente qui: questo è uno dei pochi posti in cui IE sta facendo bene e gli altri no.
Altri suggerimenti
Penso che sia l'ordine delle definizioni di "oggetto" o l'uso della parola chiave class che sta causando problemi ..
"class" è una parola chiave riservata, come sottolinea @JAAulde.Puoi comunque usare "class" come nome di una proprietà js, se lo racchiudi tra virgolette:
this."class" = _class;
Questo è importante perché alcune librerie come Bootbox richiedono di passare un oggetto opzioni che includa una "classe"proprietà.L'escape del nome della proprietà della classe tra virgolette come la riga di codice sopra lo farà funzionare in IE così come in altri browser.