angularjs - Why functions are returned from angular services -
while defining angular services, 1 expected pass constructor function. constructor function initialized using "new" keyword , object returned "new" set service. far good.
however come across instances programmers creating services below:
app.service('aobj', function aclass(){ return function(a,b){ alert(a + b); }; });
this called
aobj(1,2)
although undertsand aobj end being function, cannot understand why programmers initialize services way. constructor functions have definition like:
app.service('aobj', function aclass(){ this.var1 = undefined; this.calculate = function(b){ alert(this.var1 + b); }; });
then 1 call aobj.var1 = 1; aobj.calculate(2);
can elaborate on purpose of defining services using former method ?
plnkr: http://plnkr.co/edit/tpl:frtqqtnoy8befhs9bb0f
this depends on kind of api want expose service.
return object , call them myservice.methoda()
, myservice.methodb()
if service container exposing several closely related methods. angular's $location service
example of this.
if service exposes single public method, can more convenient users of service call myservice()
rather myservice.theonlymethod()
. angular's $compile service
example of this.
Comments
Post a Comment