Firstly, you get a vote because it is not a stupid question. Some people on Stackoverflow are wayyyy to be eligible.
Functions have something called a context. Context is the object on which the function is called.
let person = { name:"bill", speak:function(){ console.log("hi i am "+this.name) } }
if you were to do person.speak ()
it will be called on the object that has been defined. Person variable is context
so when you say it. this is the same as saying person.name
Now you can attach the function to something else.
var newperson = {name:'jill'} newperson.speak = person.speak;
it will print hi i am jill when it calls.
understand this first.
Now in the second step.
GetConfig returns a function, however this function is not attached to any object.
Check this.
let person = { name:"bill", getSpeakFunction:function(){ return function(){ console.log('hi my name is '+this.name) } } } let func = person.getSpeakFunction()
Now the func function is on its own.
Now that he's called who "this," what the hell are you talking about. This is what the function thinks.
In this way, we can help the function by saying.
let person = { name:"bill", getSpeakFunction:function(){ let context = this;
this special language decides the meaning of this, however the context is not. the context will be what is assigned to it. It will not change if you do not change it.
so using the word _self, context, $ this or something else when you assign a value to it. it is "locked in place", like any other regular variable.
let a = 2;
Now when you call your function and it is looking for _self. he knows exactly what you're talking about.
ps. I'm looking for voices too;)