Liam
Liam

Reputation: 965

javascript how to create function service (constructor)

in AngularJs if you invoke service method:

app.service('nameService', function(){
this.Service = function (){console.log('hello')}
}

then you can use this service (object) : nameService.Service() so my question is how i can write function that have two arguments(name, function)

function service ( name, function ){
// how angular declare object with that value of first argument ? 
}

i'm ask how to write function like service(name,fn){} ?

Upvotes: 0

Views: 1405

Answers (2)

Lidor Avitan
Lidor Avitan

Reputation: 1404

AngularJs use Dependency Injection to inject service.

"service" method is available on angular object because is on his Prototype.

angular.prototype.service = ...

you can read more about prototype inheritance, MDN - Inheritance and the prototype chain

Upvotes: 1

Lior Cris
Lior Cris

Reputation: 109

you can use bracket notation , to get arguments value .

function service (name, fn){

    var createService = function(){
        return new fn()
    }

    this[arguments[0]] = func()
}

service('nameService',function(){
    //here you can use 'this' because it's function constructor

    this.getLog = function (){
        console.log('hello')
    }

})


//and you can user it like you  want nameService.getLog() 
//Console: hello

Upvotes: 1

Related Questions