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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top