Javascript 将函数命名为“;删除“…”。。。删除是一个保留字

Javascript 将函数命名为“;删除“…”。。。删除是一个保留字,javascript,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); } } }

我有以下功能:

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开始,关键字可以用作属性名称

有关为属性使用保留字的详细信息,请参阅

保留字实际上只适用于标识符(相对于标识符名称)。如中所述,这些都是不排除保留字的标识符


可能最好将其重命名,因为您希望函数更具语义。如果您最终需要删除多个内容,那么将相应的删除功能命名为“deleteMsg”、“deleteComment”等,而不仅仅是“delete”将变得更加清晰。

为什么不使用删除的众多漂亮同义词中的一个,例如,灭绝、销毁、粉碎、移除、核弹、吹入遗忘,AllTheWorldSastage和Now您必须退出Tageleft…请显示错误。在现代浏览器中,这应该没有错误。@Craicerjack,因为与http请求同名更令人愉快。。。英雄联盟嗯,很好。我只是想知道有没有办法把它删除。对我来说没有错误。在这种情况下,调用方提供了命名上下文,因此
delete
在保留关键字之外是可以的<代码>销毁是此操作的另一个常用名称。