Javascript 开关箱在IE中抛出错误

Javascript 开关箱在IE中抛出错误,javascript,internet-explorer,switch-statement,Javascript,Internet Explorer,Switch Statement,代码如下: function addMethods(statusId) { var methods = {}; if (typeof currentUser !== 'undefined') { if (currentUser.isAdmin) { switch(statusId) { case "A": methods.deactivate = true;

代码如下:

function addMethods(statusId) {
    var methods = {};
    if (typeof currentUser !== 'undefined') {
        if (currentUser.isAdmin) {
            switch(statusId) {
                case "A":
                    methods.deactivate = true;
                    methods.delete = true;
                    methods.edit = true;
                    break;
                case "P":
                    methods.activate = true;
                    methods.deactivate = true;
                    methods.delete = true;
                    methods.edit = true;
                    break;
                case "D":
                    methods.activate = true;
                    methods.deactivate = true;
                    break;
                case "I":
                    methods.activate = true;
                    methods.delete = true;
                    break;
                default:
                    break;
            }
        } else if (currentUser.userBelongsToCompany) {
            switch(statusId) {
                case "A":
                    methods.deactivate = true;
                    break;
                case "P":
                    methods.activate = true;
                    methods.deactivate = true;
                    methods.edit = true;
                    break;
                case "I":
                    methods.activate = true;
                    break;
                default:
                    break;
            }
        }
    }

    return methods;
}
错误:

SCRIPT1010: Expected identifier 
奇怪的是,在尝试更新方法时引发了错误。删除:

function addMethods(statusId) {
    var methods = {};
    if (typeof currentUser !== 'undefined') {
        if (currentUser.isAdmin) {
            switch(statusId) {
                case "A":
                    methods.deactivate = true;
                    methods.delete = true;

delete
是JavaScript中的新保留关键字,不应用作标识符。将其重命名为其他名称

但是,您可以使用括号表示法,如

methods["delete"] = true;

delete
是JavaScript中的新保留关键字,不应用作标识符。将其重命名为其他名称

但是,您可以使用括号表示法,如

methods["delete"] = true;
您使用关键字“delete”作为属性名,这实际上是无效的(在某些JavaScript环境中)。但是,您可以这样编写:

    methods["delete"] = true;
您使用关键字“delete”作为属性名,这实际上是无效的(在某些JavaScript环境中)。但是,您可以这样编写:

    methods["delete"] = true;
“删除”是一个保留关键字,您应该重命名它

如果您使用类似的内容,它将有助于识别错误和语法问题。

“delete”是一个保留关键字,您应该重命名它

如果您使用类似的内容,它将有助于识别错误和语法问题。

“delete”是大多数语言中的保留关键字,在这种情况下,您应该使用

methods['delete'] = true;
或者您可以重命名“delete”功能。

在大多数语言中,“delete”是一个保留关键字,在这种情况下,您应该使用

methods['delete'] = true;


或者你可以重命名你的“删除”功能。

这只发生在ie中,ff和chrome没有问题。。那我就给它起个别的名字吧。谢谢它在ECMAScript 5中有效。@cookiemonster是的,这当然是真的。它只在ie、ff和chrome中发生,没有问题。。那我就给它起个别的名字吧。谢谢它在ECMAScript 5中是有效的。@cookiemonster是的,这当然是正确的。IE的哪个版本?在IE9+中应该可以正常工作我在ie8-10上试过,都抛出了相同的错误。你是在标准模式还是怪癖模式下?对我来说适用于>ie8,但是,你最好远离保留字,为什么给自己带来痛苦:)。removei的意思是我在IE10中试过,但使用的是文档模式和浏览器模式ie8-IE10。IE的哪个版本?在IE9+中应该可以正常工作我在ie8-10上试过,都抛出了相同的错误。你是在标准模式还是怪癖模式下?对我来说适用于>ie8,但是,你最好远离保留字,为什么给自己带来痛苦:)。removei的意思是我在IE10中试过,但使用的是文档模式和浏览器模式ie8-IE10。非常好,从现在起我会更多地使用那个网站。很好,从现在起我会更多地使用那个网站。