Object's methods and the 'this' keyword.
Methods are functions that belong to an object and they modify it's properties. What object properties are to variables, methods is to functions also.
This is possible through the 'this' javaScript keyword that points to the execution context.
Take a look at the example above. When the object is created the profession of the person is 'Machine Learning engineer'. This person though has a method attached that can change this property. The changeProfession method.
This method whenever is called, takes a single string argument, and put it as a new value to the profession property of this!
But what does this mean? This is a reference to WHATEVER calls the changeProfession function. In our case the changeProfession is a method that belongs to the jake object, that's why we call it as jake.changeProfession. That means that the whole environment the changeProfession function lives and breathes is inside the jake object. This is a reference to the context of the function (the jake object in this case).
Notice: The point of reference of this keyword can change through a specific method later, if no object is provided and a function is global, the this keyword refers to the global (or window) object.
Example: Imagine you wake up happy one day and you decide to let anyone know about it. You go outside of your apartment and you scream 'I love this country'. Which country do the people that surround you think that you are talking about. Since you havn't really named the country it could be any country, right? But since you are in Germany everyone will automatically assume that you are talking about Germany. Why? Because you are in Germany the time the action happens. It surrounds you, is your environment, or your context better. If you were in France then 'this country' would mean France etc.