SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
inheritence
in
Javascript
Aditya Gaur
Mentor: Apurba Nath, Satya Prakash
Why inheritence ?
 Creating a hierarchy
 Code reuse
Classical inheritance
Objects are instances of classes
A Class inherits from other class
Prototypal inheritance
A prototypal language is a class less object
oriented language.
 OOP without classes – now that’s weird
Here Objects inherit from objects
 What could be more object oriented than this!
 Code reuse done via cloning
How do we do this?
prototype
A prototype is an object used to implement
structure, state, and behaviour inheritance in
ECMAScript.
So, what kind of
objects contain the
prototype object?
Each and every object
(Except the Object.prototype)
What !But when I do { }.prototype, I get null
:-/
So what is prototype actually?
The true prototype of an object is held by the
internal [[Prototype]] property.
This is represented as __proto__ in some of
the browsers like firefox.
__proto__
oldObjectnewObject
Accessing the prototype
Most browsers support the non standard
accessor __proto__ .
ECMA 5 introduces the standard accessor
Object.getPrototypeOf(object)
Use object constructor.
object.constructor.prototype
Example
var baseObject = {
firstMethod: function () {alert(“first method");},
secondMethod: function () {alert(“second method");}
};
var extendedObject = {};
extendedObject.thirdMethod = function () {alert(“third method")};
extendedObject.__proto__ = baseObject;
extendedObject.firstMethod();
extendedObject.thirdMethod();
firstMethod
secondMethod
__proto__
thirdMethod
__proto__
baseObjectextendedObject
Prototype chaining
When an object is asked to evaluate property foo,
JavaScript walks the prototype chain (starting with
object a itself), checking each link in the chain for the
presence of property foo.
If and when foo is found it is returned, otherwise
undefined is returned.
var baseObject = {
name: "FooBarBaz",
getModifiedString : function(){
return "Hello " + this.name;
}
};
var extendedObject = {
age : 10
};
extendedObject.__proto__ = baseObject;
extendedObject.getModifiedString();
extendedObject.toString();
name
getModifiedString
__proto__
age
__proto__
baseObject
extendedObject
toString
__proto__
Object.prototype
null
OK, So what was the prototype we were
talking about in the last session?
Prototype property in functions
var newClass = function (){
var privateVal = 10;
this.publicVal = 20;
}
newClass.prototype.sharedVal = 30;
what's this?
 The functions in JavaScript are objects and they
contain methods and properties.
 One of property of the function objects is prototype.
 A function’s prototype property is the object that will
be assigned as the prototype ([[Prototype]] ) to all
instances created when this function is used as a
constructor.
examples
//function will never be a constructor but it has a prototype
property anyway
Math.max.prototype; //[object Object]
//function intended to be a constructor has a prototype too
var A = function(name) {
this.name = name;
}
A.prototype; //[object Object]
//Math is not a function so no prototype property
Math.prototype; //null
 Every function has a prototype property, and the
objects which are not function don’t have the prototype
property.
examples
function Foo(name){
this.name = name;
}
Foo.prototype.getName = function(){
return this.name;
}
var obj = new Foo("bar");
obj.getName();
Foo
prototype
__proto__
constructor
getName
obj
name
__proto__
Function.prototype
Examples (augmentation)
function Foo(name){
this.name = name;
}
Foo.prototype.getName = function(){
return this.name;
};
var obj = new Foo("bar");
obj.getName(); //bar
Foo.prototype.getFullName = function(){
return "Foo" + this.name;
};
obj.getFullName();// Foobar
 Note that the prototype is "live". Objects are passed by reference in
JavaScript, and therefore the prototype is not copied with every new
object instance.
 It means that prototype property can be changed at any time and
all the instances will reflect the change.
A catch
function Foo(name){
this.name = name;
}
Foo.prototype.getName = function(){
return this.name;
};
var obj = new Foo("bar");
obj.getName(); //bar
Foo.prototype = {
getFullName : function (){
return "FOO" + this.name;
}
};
obj.getFullName();// ERROR
obj.getName(); //bar
var obj2 = new Foo("baz");
obj2.getFullName(); //FOObaz
 If the prototype property is completely replaced the object still
points to the original prototype ([[Prototype]] )
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
 Creates a new object with the specified prototype object and
properties
 Introduced in ECMAscript 5.
Object.create
var func = function(){
alert(this);
this.aVar =10;
}
var aVar = func();
 The new keyword.
 If we forget the new keyword, “this” is bounded to global object.
 Also gives an impression of classical inheritance
 Deprecated __proto__
Object.create. Why ?
 Douglas Crockford’s video lecture on Advanced
javascript
 Mozilla developer network
References
Thank you

Contenu connexe

Tendances

Object Oriented Programming in JavaScript
Object Oriented Programming in JavaScriptObject Oriented Programming in JavaScript
Object Oriented Programming in JavaScript
zand3rs
 
Javascript basic course
Javascript basic courseJavascript basic course
Javascript basic course
Tran Khoa
 
JavaScript for PHP developers
JavaScript for PHP developersJavaScript for PHP developers
JavaScript for PHP developers
Stoyan Stefanov
 

Tendances (20)

Object Oriented Programming in JavaScript
Object Oriented Programming in JavaScriptObject Oriented Programming in JavaScript
Object Oriented Programming in JavaScript
 
Advanced JavaScript
Advanced JavaScriptAdvanced JavaScript
Advanced JavaScript
 
Javascript basic course
Javascript basic courseJavascript basic course
Javascript basic course
 
Assign
AssignAssign
Assign
 
Advanced JavaScript
Advanced JavaScriptAdvanced JavaScript
Advanced JavaScript
 
Javascript tid-bits
Javascript tid-bitsJavascript tid-bits
Javascript tid-bits
 
JavaScript Inheritance
JavaScript InheritanceJavaScript Inheritance
JavaScript Inheritance
 
Introduction to modern c++ principles(part 1)
Introduction to modern c++ principles(part 1)Introduction to modern c++ principles(part 1)
Introduction to modern c++ principles(part 1)
 
Beginning Object-Oriented JavaScript
Beginning Object-Oriented JavaScriptBeginning Object-Oriented JavaScript
Beginning Object-Oriented JavaScript
 
PyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for FoursquarePyFoursquare: Python Library for Foursquare
PyFoursquare: Python Library for Foursquare
 
JavaScript for PHP developers
JavaScript for PHP developersJavaScript for PHP developers
JavaScript for PHP developers
 
JavaScript Primer
JavaScript PrimerJavaScript Primer
JavaScript Primer
 
Introduction to clojure
Introduction to clojureIntroduction to clojure
Introduction to clojure
 
JavaScript 1 for high school
JavaScript 1 for high schoolJavaScript 1 for high school
JavaScript 1 for high school
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript Basics
 
Real world gobbledygook
Real world gobbledygookReal world gobbledygook
Real world gobbledygook
 
JavaScript Basics
JavaScript BasicsJavaScript Basics
JavaScript Basics
 
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
 
The Swift Compiler and Standard Library
The Swift Compiler and Standard LibraryThe Swift Compiler and Standard Library
The Swift Compiler and Standard Library
 
About Python
About PythonAbout Python
About Python
 

En vedette (7)

123456
123456123456
123456
 
this is message edit and approve
this is message edit and approvethis is message edit and approve
this is message edit and approve
 
LAtest Doc
LAtest DocLAtest Doc
LAtest Doc
 
Presentation1.PPTX
Presentation1.PPTXPresentation1.PPTX
Presentation1.PPTX
 
Presentation1.PPTX
Presentation1.PPTXPresentation1.PPTX
Presentation1.PPTX
 
Scare at 13:59
Scare at 13:59Scare at 13:59
Scare at 13:59
 
Sam_V01.ppt
Sam_V01.pptSam_V01.ppt
Sam_V01.ppt
 

Similaire à Prototype 120102020133-phpapp02

Introduction to javascript and yoolkui
Introduction to javascript and yoolkuiIntroduction to javascript and yoolkui
Introduction to javascript and yoolkui
Khou Suylong
 
JavaScript - Programming Languages course
JavaScript - Programming Languages course JavaScript - Programming Languages course
JavaScript - Programming Languages course
yoavrubin
 

Similaire à Prototype 120102020133-phpapp02 (20)

Introduction to javascript and yoolkui
Introduction to javascript and yoolkuiIntroduction to javascript and yoolkui
Introduction to javascript and yoolkui
 
The many facets of code reuse in JavaScript
The many facets of code reuse in JavaScriptThe many facets of code reuse in JavaScript
The many facets of code reuse in JavaScript
 
How prototype works in java script?
How prototype works in java script?How prototype works in java script?
How prototype works in java script?
 
Javascript
JavascriptJavascript
Javascript
 
Javascript Object Oriented Programming
Javascript Object Oriented ProgrammingJavascript Object Oriented Programming
Javascript Object Oriented Programming
 
JavaScript Essentials
JavaScript EssentialsJavaScript Essentials
JavaScript Essentials
 
Advanced Javascript
Advanced JavascriptAdvanced Javascript
Advanced Javascript
 
Advanced Javascript
Advanced JavascriptAdvanced Javascript
Advanced Javascript
 
JavaScript - Programming Languages course
JavaScript - Programming Languages course JavaScript - Programming Languages course
JavaScript - Programming Languages course
 
JS Level Up: Prototypes
JS Level Up: PrototypesJS Level Up: Prototypes
JS Level Up: Prototypes
 
Learn JS concepts by implementing jQuery
Learn JS concepts by implementing jQueryLearn JS concepts by implementing jQuery
Learn JS concepts by implementing jQuery
 
Javascript talk
Javascript talkJavascript talk
Javascript talk
 
Javascript closures
Javascript closures Javascript closures
Javascript closures
 
Javascript Prototypal Inheritance - Big Picture
Javascript Prototypal Inheritance - Big PictureJavascript Prototypal Inheritance - Big Picture
Javascript Prototypal Inheritance - Big Picture
 
Coding using jscript test complete
Coding using jscript test completeCoding using jscript test complete
Coding using jscript test complete
 
JavsScript OOP
JavsScript OOPJavsScript OOP
JavsScript OOP
 
Ian 20150116 java script oop
Ian 20150116 java script oopIan 20150116 java script oop
Ian 20150116 java script oop
 
Advanced javascript
Advanced javascriptAdvanced javascript
Advanced javascript
 
Module 10-Introduction to OOP.pptx
Module 10-Introduction to OOP.pptxModule 10-Introduction to OOP.pptx
Module 10-Introduction to OOP.pptx
 
Object Oriented JavaScript
Object Oriented JavaScriptObject Oriented JavaScript
Object Oriented JavaScript
 

Plus de plutoone TestTwo (20)

Presentation1.PPTX
Presentation1.PPTXPresentation1.PPTX
Presentation1.PPTX
 
Effective_presentation.ppt
Effective_presentation.pptEffective_presentation.ppt
Effective_presentation.ppt
 
Effective_presentation.ppt
Effective_presentation.pptEffective_presentation.ppt
Effective_presentation.ppt
 
Effective_presentation.ppt
Effective_presentation.pptEffective_presentation.ppt
Effective_presentation.ppt
 
from app
from appfrom app
from app
 
example.pdf
example.pdfexample.pdf
example.pdf
 
7.2edited
7.2edited7.2edited
7.2edited
 
hello plutoone
hello plutoonehello plutoone
hello plutoone
 
plutoone channel
plutoone channelplutoone channel
plutoone channel
 
Document.docx.docx
Document.docx.docxDocument.docx.docx
Document.docx.docx
 
format.txt.txt
format.txt.txtformat.txt.txt
format.txt.txt
 
Presentation1.PPTX
Presentation1.PPTXPresentation1.PPTX
Presentation1.PPTX
 
Sample.ppt
Sample.pptSample.ppt
Sample.ppt
 
newdocument.txt
newdocument.txtnewdocument.txt
newdocument.txt
 
NetworkSecurity.ppt
NetworkSecurity.pptNetworkSecurity.ppt
NetworkSecurity.ppt
 
Presentation1.PPTX
Presentation1.PPTXPresentation1.PPTX
Presentation1.PPTX
 
another
anotheranother
another
 
All - Edited with description
All - Edited with descriptionAll - Edited with description
All - Edited with description
 
Allow downloads
Allow downloadsAllow downloads
Allow downloads
 
new widget
new widgetnew widget
new widget
 

Dernier

Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
amitlee9823
 
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Anamikakaur10
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
daisycvs
 
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Sheetaleventcompany
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
Matteo Carbone
 

Dernier (20)

Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
 
Falcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investorsFalcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investors
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and pains
 
Eluru Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort Service
Eluru Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort ServiceEluru Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort Service
Eluru Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort Service
 
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Nelamangala Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
 
Falcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in indiaFalcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in india
 
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
 
How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League City
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
 
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesMysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
 
Business Model Canvas (BMC)- A new venture concept
Business Model Canvas (BMC)-  A new venture conceptBusiness Model Canvas (BMC)-  A new venture concept
Business Model Canvas (BMC)- A new venture concept
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptx
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 

Prototype 120102020133-phpapp02

  • 3.  Creating a hierarchy  Code reuse
  • 4. Classical inheritance Objects are instances of classes A Class inherits from other class
  • 5. Prototypal inheritance A prototypal language is a class less object oriented language.  OOP without classes – now that’s weird Here Objects inherit from objects  What could be more object oriented than this!  Code reuse done via cloning
  • 6. How do we do this?
  • 7. prototype A prototype is an object used to implement structure, state, and behaviour inheritance in ECMAScript.
  • 8. So, what kind of objects contain the prototype object?
  • 9. Each and every object (Except the Object.prototype)
  • 10. What !But when I do { }.prototype, I get null :-/
  • 11. So what is prototype actually? The true prototype of an object is held by the internal [[Prototype]] property. This is represented as __proto__ in some of the browsers like firefox. __proto__ oldObjectnewObject
  • 12. Accessing the prototype Most browsers support the non standard accessor __proto__ . ECMA 5 introduces the standard accessor Object.getPrototypeOf(object) Use object constructor. object.constructor.prototype
  • 13. Example var baseObject = { firstMethod: function () {alert(“first method");}, secondMethod: function () {alert(“second method");} }; var extendedObject = {}; extendedObject.thirdMethod = function () {alert(“third method")}; extendedObject.__proto__ = baseObject; extendedObject.firstMethod(); extendedObject.thirdMethod(); firstMethod secondMethod __proto__ thirdMethod __proto__ baseObjectextendedObject
  • 14. Prototype chaining When an object is asked to evaluate property foo, JavaScript walks the prototype chain (starting with object a itself), checking each link in the chain for the presence of property foo. If and when foo is found it is returned, otherwise undefined is returned.
  • 15. var baseObject = { name: "FooBarBaz", getModifiedString : function(){ return "Hello " + this.name; } }; var extendedObject = { age : 10 }; extendedObject.__proto__ = baseObject; extendedObject.getModifiedString(); extendedObject.toString(); name getModifiedString __proto__ age __proto__ baseObject extendedObject toString __proto__ Object.prototype null
  • 16. OK, So what was the prototype we were talking about in the last session?
  • 17. Prototype property in functions var newClass = function (){ var privateVal = 10; this.publicVal = 20; } newClass.prototype.sharedVal = 30; what's this?  The functions in JavaScript are objects and they contain methods and properties.  One of property of the function objects is prototype.  A function’s prototype property is the object that will be assigned as the prototype ([[Prototype]] ) to all instances created when this function is used as a constructor.
  • 18. examples //function will never be a constructor but it has a prototype property anyway Math.max.prototype; //[object Object] //function intended to be a constructor has a prototype too var A = function(name) { this.name = name; } A.prototype; //[object Object] //Math is not a function so no prototype property Math.prototype; //null  Every function has a prototype property, and the objects which are not function don’t have the prototype property.
  • 19. examples function Foo(name){ this.name = name; } Foo.prototype.getName = function(){ return this.name; } var obj = new Foo("bar"); obj.getName(); Foo prototype __proto__ constructor getName obj name __proto__ Function.prototype
  • 20. Examples (augmentation) function Foo(name){ this.name = name; } Foo.prototype.getName = function(){ return this.name; }; var obj = new Foo("bar"); obj.getName(); //bar Foo.prototype.getFullName = function(){ return "Foo" + this.name; }; obj.getFullName();// Foobar  Note that the prototype is "live". Objects are passed by reference in JavaScript, and therefore the prototype is not copied with every new object instance.  It means that prototype property can be changed at any time and all the instances will reflect the change.
  • 21. A catch function Foo(name){ this.name = name; } Foo.prototype.getName = function(){ return this.name; }; var obj = new Foo("bar"); obj.getName(); //bar Foo.prototype = { getFullName : function (){ return "FOO" + this.name; } }; obj.getFullName();// ERROR obj.getName(); //bar var obj2 = new Foo("baz"); obj2.getFullName(); //FOObaz  If the prototype property is completely replaced the object still points to the original prototype ([[Prototype]] )
  • 22. Object.create = function (o) { function F() {} F.prototype = o; return new F(); };  Creates a new object with the specified prototype object and properties  Introduced in ECMAscript 5. Object.create
  • 23. var func = function(){ alert(this); this.aVar =10; } var aVar = func();  The new keyword.  If we forget the new keyword, “this” is bounded to global object.  Also gives an impression of classical inheritance  Deprecated __proto__ Object.create. Why ?
  • 24.  Douglas Crockford’s video lecture on Advanced javascript  Mozilla developer network References