2

我是在 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 有错误 - 预期标识符。

4

3 回答 3

5

您不能将保留关键字“类”用作任何变量或属性名称。有趣的是——这是少数几个 IE 做得对的地方之一,而其他地方却没有。

于 2011-03-18T11:00:35.633 回答
0

我认为这是您的“对象”定义的顺序,或者您使用导致问题的类关键字。

于 2011-03-18T11:01:47.097 回答
0

正如@JAAulde 指出的那样,“class”是一个保留关键字。但是,如果将其括在引号中,您仍然可以使用 'class' 作为 js 属性名称:

this."class" = _class;

这很重要,因为某些库(例如Bootbox)要求您传递包含“类”属性的选项对象。像上面的代码行那样在引号中转义类属性名称将使它在 IE 以及其他浏览器中工作。

于 2013-07-09T19:51:36.950 回答