我在这里找到了以下代码片段:
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的解释器会报错死代码匿名函数