I was expecting the 2nd call of the \"taco\" function to generate a runtime error since I am not calling it with the \"this\" keyword:
function foo() { v
foo(); // equals window.foo() , `this` equals `window` and `this.taco` equals `window.taco` and `window.taco` equals `taco` as it is global new foo(); //creates a new object. this will give error because here `this.taco` is not `taco`