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。非常好,从现在起我会更多地使用那个网站。很好,从现在起我会更多地使用那个网站。