0

我在这里找到了以下代码片段:

App.factory('myHttp',['$http',function($http) {
  return function() {
    get: function(url, success, fail) {
      $http.get(url).success(function(response) {
        return response.data;
      }).error(fail);
    }
  };
}]);

我想知道这个语法是什么意思:

function() {
  get: function(...) { ... }
}
4

2 回答 2

3

看起来这是一个错字。这绝对是语法错误。它类似于ES5 的 getter 表示法,但即便如此,您也只能将其与属性名称一起使用,例如get response() { ... }.

也许作者的意图是:

App.factory('myHttp',['$http',function($http) {
  return {
    get: function(url, success, fail) {
      $http.get(url).success(function(response) {
        return response.data;
      }).error(fail);
    }
  };
}]);

不是ES5 的 getter 表示法,而是一个简单的对象,它有一个名为 的属性get,指的是HTTP GET(而不是 POST)。

于 2012-12-30T03:09:39.263 回答
0

我有理由确定 JavaScript 解析器会将get那里解释为label。没用,因为标签只对循环控制有用,这里没有循环。尽管如此,它主要是合法的语法。也就是说,Firefox 的解释器会抱怨死代码匿名函数。

于 2012-12-30T03:29:36.310 回答