https://medium.com/@aqsa1704a/unlocking-the-mysteries-of-object-oriented-programming-javascript-vs-java-268da3838a65