File tree Expand file tree Collapse file tree 1 file changed +47
-0
lines changed
part6 (Object-Oriented Programming)/Objects Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change 1+ /*
2+ INFO: Object Prototypes
3+ JavaScript is prototype-based, meaning every object in JavaScript has a hidden [[prototype]] (commonly accessed via .prototype or __proto__).
4+ */
5+
6+ /*
7+ INFO: What is prototype ?
8+ A prototype is just another object that your object inherits properties and methods from.
9+ */
10+ const user = {
11+ name : "Rafay" ,
12+ greet ( ) {
13+ console . log ( `Hello, ${ this . name } ` ) ;
14+ }
15+ } ;
16+
17+ const admin = {
18+ role : "admin" ,
19+ } ;
20+
21+ admin . __proto__ = user ;
22+
23+ console . log ( admin . name ) ; // "Rafay"
24+ admin . greet ( ) ; // Hello, Rafay
25+
26+ /*
27+ INFO: Object.getPrototypeOf() and Object.setPrototypeOf()
28+ you can also get/set protypes programmatically:
29+ */
30+ Object . getPrototypeOf ( admin ) ; // user
31+ Object . setPrototypeOf ( admin , { } ) ; // change prototype
32+
33+ /*
34+ INFO: Object.prototype
35+ Every object eventually links to Object.prototype, unless you create it with Object.create(null).
36+ */
37+
38+ /*
39+ INFO: Prototype Chain
40+ When you access a property:
41+ 1. Js looks at the object itself.
42+ 2. If not found, it looks in its prototype.
43+ 3. Then the prototype's prototype... and so on, until it hits null.
44+ This is called Prototype Chain.
45+ */
46+
47+
You can’t perform that action at this time.
0 commit comments