Javascript カスタム オブジェクト - IE で予期される識別子
-
27-10-2019 - |
質問
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 だけでなく他のブラウザでも機能します。
所属していません StackOverflow