I'm coming from an Actionscript background and (very late to the party) I am trying to learn JavaScript. I am going through this AngularJS - Video Tutorial For Beginners on YouTube (it's pretty good) and saw something really basic that I don't understand.
At line 5 the var workcount is defined. Then two anonymous functions are defined and returned in an object. The functions reference workcount but isn't workcount in a different scope? Is this like blocks in Objective-C where local vars remain accessible within the block. Is there a name for what this is?
Or if a function "knows about" vars previously defined in its scope, would the function task2 "know about" task1?
It bugs me that I can't make sense of this.
Update: Thanks for all the replies. I get it now – and while I have seen the term "closures" before, I never understood it (it seems a not very descriptive term. In reading up, I saw the term "stack-frames" and then the light bulb lit up: stack... frame of reference);
var createWorker = function(){
  var workCount = 0;
  var task1 = function(){
    workCount += 1;
    console.log("task1" , workCount);
  };
  var task2 = function(){
    workCount += 1;
    console.log("task2" , workCount);
  };
  return {
    job1: task1,
    job2:task2
  }
};
worker=createWorker();
worker.job1();
worker.job2();
Output:
task1 1
task2 2
 
     
     
     
     
     
     
     
    