我有以下功能:
function messageService($http) {
return {
get: function (query) {
return $http.get("/api/v1/messages", { params: query });
},
delete: function (id) {
return $http.delete("/api/v1/messages/" + id);
}
}
}
但删除是一个javascript保留函数,当我调用此函数时,我收到一个错误。有没有办法避免这种情况而不更改删除名称?
答案 0 :(得分:6)
您可以使用字符串。
return {
...
'delete': function(id) {
return $http['delete']("/api/v1/messages/" + id);
}
};
请注意,您只需要在ES3或更低版本中创建一个字符串。从ES5开始,关键字可以用作属性名称。
有关为属性使用保留字的详细信息,请see the MDN section覆盖它。
保留字实际上仅适用于标识符(与IdentifierNames对比)。如es5.github.com/#A.1中所述,这些都是不排除ReservedWords的IdentifierNames。
答案 1 :(得分:0)
最好重命名它,因为你希望函数更具语义性。如果您最终需要删除多项内容,那么将相应的删除功能命名为“deleteMsg”,“deleteComment”等,而不仅仅是“删除”,将会更加清晰。