this parameter is very important in object oriented
programming, and its value is determined by the invocation
method invocation pattern, the function invocation pattern, the constructor
invocation pattern, and the apply invocation pattern.
Invocation pattern: --> how "this" is initialised. (1) method (2) function (3) constructor (4) apply