javascript fixing the lack of 'new' keyword when creating an instance of an object
when creating an instance of the object and forget to use the 'new' keyword
the 'this' variable will refer to the 'window' object.
we can use this behavior to initialize a fresh instance of the current object and return it.
this way we'll be able.

javascript that
use local variable within a custom object to save reference to the current object
sometimes the 'this' variable not refer to the object contains the current function (callback calls, setTimeout etc.)
the best way to handle this is by save an extra reference to the actual object (it's quite common to call it 'that')
declare it in.

javascript object using prototype
// prototype (best practice)
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
// this 'sayYourName' method will be created only once for all Person instances
// instead of per each instance - less CPU usage (no need to create it per instance)
// and less Memory consumption (no need to store it per instance)
// it's recommended.