Read 02 Classes, Inheritance, Functional Programming - 401-advanced-javascript-hanna-alemu/code-401-JS-prework GitHub Wiki
Functional programming is the process of building software by composing pure functions, avoiding shared state, mutable data, and side-effects. It is the opposite of object-oriented programming, where application state is usually shared and colocated with methods in objects. It makes complex code easy to understand and our lives as developers much easier.
Inheritance :-
Javascript is more flexible than other languages in that it lets things inherit from objects with or without classes. Context is basically what "this" refers to in that situation. If there is no other parent object, by default, "this" refers to the window object. Inheritance lets children objects inherit properties from the parent, but parents can't necessarily inherit from children.