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

Name a function "delete" ... Delete is a reserved word

本文关键字:删除 保留字 一个 函数      更新时间:2023-09-26

我有以下功能:

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);
    }
  }
}

但是delete是一个javascript保留函数,当我调用这个函数时,我会得到一个错误。有没有一种方法可以在不更改删除名称的情况下避免这种情况?

您可以使用字符串。

return {
  ...
  'delete': function(id) {
    return $http['delete']("/api/v1/messages/" + id);
  }
};

请注意,您只需要在ES3或更低版本中将其设为字符串即可。从ES5开始,关键字可以用作属性名称。

有关为属性使用保留字的更多信息,请参阅MDN部分

保留字实际上只适用于标识符(相对于标识符名称)。如es5.github.com/#A.1所述,这些都是不排除ReservedWords的标识符名称。

最好重命名它,因为无论如何都希望函数更具语义。如果你最终有多个东西需要删除,那么将相应的删除函数命名为"deleteMsg"、"deleteComment"等会更清楚,而不仅仅是"delete"。