以下是代码:
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
奇怪的是,当它试图更新methods.delete:
时会抛出错误function addMethods(statusId) {
var methods = {};
if (typeof currentUser !== 'undefined') {
if (currentUser.isAdmin) {
switch(statusId) {
case "A":
methods.deactivate = true;
methods.delete = true;
答案 0 :(得分:3)
您使用关键字“delete”作为属性名称,并且这不是真正有效的(在某些JavaScript环境中)。你可以这样编码:
methods["delete"] = true;
答案 1 :(得分:1)
delete
是JavaScript中的新保留关键字,不应用作标识符。将其重命名为其他内容
但是你可以使用括号表示法
methods["delete"] = true;
答案 2 :(得分:1)
“delete”是您应该重命名的保留关键字。
如果您使用http://www.jshint.com/之类的内容,则有助于识别错误和语法问题。
答案 3 :(得分:1)
“delete”是大多数语言中的保留关键字,在这种情况下,您应该使用
methods['delete'] = true;
或者您可以重命名“删除”功能。