JS Functions and This

Until arrow functions, every new function defined its own this value (a new object in the case of a constructor, undefined in strict function calls, the base object if the function is called as an 'object method'...) 

An arrow function does not create its own this, the this value of the enclosing context is used. 

function Human(){ this.age = 0; setInterval(() => { this.age++; // |this| properly refers to the person object }, 1000); } var p = new Human();