I have some code here. I am aware that this reference wont be carried in anonymous functions. But here, even when using a function of an object, the this inside that is window.
var MyClass = function (div) {
    this.array = [];
};
MyClass.prototype = {
  addToArray: function (elem) {
    this.array.push(elem);
  },
  processAndAdd: function(elemArray){
    elemArray.forEach(this.addToArray);
  }
}
var myObj = new MyClass();
myObj.processAndAdd([1, 2, 3]);
console.log('test');Error: Line: this.array.push(elem);
push of undefined.
On inspection, the this here is window Object
I want to know why this is window here, and how to restructure my code to properly handle this.
 
    