JavaScript 中的 "function() { get: function(...) { ... } }" 是什么意思?



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

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(...) { ... }
}

看起来像是打错了。这绝对是一个语法错误。它类似于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相反)。

我很确定JavaScript解析器会将get解释为标签。这是没用的,因为标签只对循环控制有用,这里没有循环。不过,它主要是合法的语法。也就是说,Firefox的解释器会报错死代码匿名函数

最新更新