In this article, we will talk about the different topics that will lead us to understand better what thenew
keyword does in JS.
__proto__
property and its role when it comes to objects and the prototypal chainingprototype
and __proto__
__proto__
and prototype
and the prototypal chainnew
keyword and how do the different pieces relate to itThe tweet which you can see below is asking whether all Objects have the prototype property [by default]. It sparked a lot of discussions, different answers, and people wondering if what they think is correct or not.
Let me try and answer it in the best way I can. Let’s start with some related topics that will help us to clear the confusion around __proto__
, [[Prototype]]
, and prototype
. That will lead us to understand what the new
keyword does in JavaScript under the hood.
One of the cool things about JavaScript is that you can write an application using different programming paradigms such as functional programming and object oriented programming (OOP). The difference between OOP languages such as Java, C#, C++, and the rest of the gang, is that JavaScripts OOP is just syntactical sugar. Under the hood, it makes use of the prototypal chain to allow us as developers to write our application in an OOP style.
Suppose the application we want to create is an e-commerce application. One of the entities that exist in the application is a customer. As a customer, I can add an item to my cart, remove an item, and also checkout/purchase the items that I hold.
Of course, you will have more than one customer registered in your application, and you want all of them to share these functionalities, the ones that we have just defined. Also in the future when our application grows we start having more use cases that we need to add to our customer functionalities.
What’s one way to bundle up multiple functions in one place in JS and save it to be used later again and again? You guessed it, in an Object!
#tips #beginner #javascript #es6 #programming