質問

JavaScript でカスタム オブジェクトを作成するのは初めてなので、簡単なもので済むかもしれません。

これらのオブジェクトがあります:

        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;
        };

私はそれを使って呼んでいます var jsonObject = new jsonObj(id,title,class,icon); すべて文字列変数です。

これらは Chrome と Firefox では正常に動作しますが、IE(8) では正常に動作しません。IE にエラー「予期された識別子」が表示されます。

役に立ちましたか?

解決

予約済みのキーワード「class」を変数名またはプロパティ名として使用することはできません。ここで面白いのは、IEが正しく機能している数少ない場所のひとつであり、残りは正しく機能していないことです。

他のヒント

問題を引き起こしているのは、「オブジェクト」定義の順序、またはクラスキーワードの使用だと思います。

@JAAuldeが指摘しているように、「class」は予約されたキーワードです。ただし、引用符で囲んだ場合は、「class」を js プロパティ名として使用できます。

this."class" = _class;

次のようないくつかのライブラリがあるため、これは重要です。 ブーツボックス 「クラス」プロパティを含むオプション オブジェクトを渡す必要があります。上記のコード行のように、クラス プロパティ名を引用符で囲んでエスケープすると、これは IE だけでなく他のブラウザでも機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top