命名一个函数"删除" ...删除是一个保留字

时间:2016-03-22 17:23:20

标签: javascript

我有以下功能:

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保留函数,当我调用此函数时,我收到一个错误。有没有办法避免这种情况而不更改删除名称?

2 个答案:

答案 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”等,而不仅仅是“删除”,将会更加清晰。