“This” in JavaScript
The author critically misunderstands the way that `this` gets set, and in doing so has developed a significantly overcomplicated mental model.  This is exemplified in the statement:You can use this in any function on an object to refer to other properties on that object. This is not the same as an instance created with new. ... Note, there was no use of new , no Object.create and no function called to create obj.This is exactly the same behavior that you see on an object method reference, and drawing any distinction at all makes understanding the behavior of this harder than it needs to be.In nearly every case (with the exception of bind, call and apply) the this variable is set at the CALL SITE of the function, NOT THE DEFINITION.  Note that in the three other cases, you still aren't setting this at the definition.The reason you get this behaving as the author describes on objects created with new is only (as the author nearly, but not quite, realizes) because you called the function in the form:    thing.method()

Specifically, it is the object reference that sets the this context within the method call.You can be sure that the object literal case is just the same.  You don't need to call new to get an object reference that has a prototype chain: namely, an object literal is instantiated with the prototype Object.  You can verify this is true with a simple:    thing = {}
    thing.hasOwnProperty === Object.hasOwnProperty

...and so forth.