有人可以解释为什么,如果我在return语句中向_start
添加parens,我会收到错误:
undefined is not a function
_start
是功能,不是吗?
.factory('TrackPage', ['$location', function($location){
var self = this;
function _start(){
//method body
}
function _end(){
//method body
}
return {
Start: _start,
End: _end
}
}]);
代码按原样运行,但我想知道为什么Start: ...
为Start: _start()
时,它不起作用。
答案 0 :(得分:2)
当您向_start,
添加parens时,您需要将_start
的返回值分配给Start
。
此返回值为undefined
。
然后,当您尝试执行Start()
时,您将收到undefined is not a function
错误。
这是因为_start
(undefined
)的返回值不是函数。
所以,错误是说" Start
不是函数" ,而不是" _start
不是。功能"
答案 1 :(得分:1)
我不熟悉angularjs,但通常当你在变量v中存储函数a()时,你可以通过放置v()来调用函数,其中v = a。因此,如果你把v = a()并调用v(),最后会得到一个()()。 a()返回undefines,undefined()不是函数。
P.S。缺乏声誉使这个评论,所以它反而回答。