SlideShare a Scribd company logo
1 of 73
Object-Oriented
JavaScript



     Learn More @ http://www.learnnowonline.com
        Copyright © by Application Developers Training Company
Objectives




      Learn More @ http://www.learnnowonline.com
         Copyright © by Application Developers Training Company
Objectives
• Learn about the various ways to create
  new objects with JavaScript




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Objectives
• Learn about the various ways to create
  new objects with JavaScript
• Explore how you can create custom
  constructors to instantiate multiple
  objects of the same class




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Introduction to
Object-Oriented JavaScript




        Learn More @ http://www.learnnowonline.com
           Copyright © by Application Developers Training Company
Introduction to
Object-Oriented JavaScript
• Possible to build sophisticated
  frameworks




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Introduction to
Object-Oriented JavaScript
• Possible to build sophisticated
  frameworks
  • jQuery for general Web development




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Introduction to
Object-Oriented JavaScript
• Possible to build sophisticated
  frameworks
  • jQuery for general Web development
• OOP uses abstraction to create models
  of real objects




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Introduction to
Object-Oriented JavaScript
• Possible to build sophisticated
  frameworks
  • jQuery for general Web development
• OOP uses abstraction to create models
  of real objects
  • Store own data and state




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Introduction to
Object-Oriented JavaScript
• Possible to build sophisticated
  frameworks
  • jQuery for general Web development
• OOP uses abstraction to create models
  of real objects
  • Store own data and state
  • Receive messages




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Introduction to
Object-Oriented JavaScript
• Possible to build sophisticated
  frameworks
  • jQuery for general Web development
• OOP uses abstraction to create models
  of real objects
  • Store own data and state
  • Receive messages
  • Interact with other objects


          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Agenda




     Learn More @ http://www.learnnowonline.com
         Copyright © by Application Developers Training Company
Agenda
• Introduction to Object-Oriented
  JavaScript




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Agenda
• Introduction to Object-Oriented
  JavaScript
• Creating JavaScript Objects




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Agenda
• Introduction to Object-Oriented
  JavaScript
• Creating JavaScript Objects
• Custom Object Constructors




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Creating JavaScript Objects




       Learn More @ http://www.learnnowonline.com
          Copyright © by Application Developers Training Company
Creating JavaScript Objects
• Number of ways to create custom
  objects




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Creating JavaScript Objects
• Number of ways to create custom
  objects
• Customer object




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Creating JavaScript Objects
• Number of ways to create custom
  objects
• Customer object
  • Properties to record data like ID, name,
   location




          Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company
Creating JavaScript Objects
• Number of ways to create custom
  objects
• Customer object
  • Properties to record data like ID, name,
   location
    • Some direct properties, others getter/setters




           Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company
Creating JavaScript Objects
• Number of ways to create custom
  objects
• Customer object
  • Properties to record data like ID, name,
   location
    • Some direct properties, others getter/setters
  • Override Object.toString




           Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company
Creating JavaScript Objects
• Number of ways to create custom
  objects
• Customer object
  • Properties to record data like ID, name,
   location
    • Some direct properties, others getter/setters
  • Override Object.toString
  • Method to record sales



           Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company
Using the Object Constructor




      Learn More @ http://www.learnnowonline.com
         Copyright © by Application Developers Training Company
Using the Object Constructor
• Use Object constructor with new
  keyword




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Using the Object Constructor
• Use Object constructor with new
  keyword
  • Creates a new object that inherits from
   Object




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Using the Object Constructor
• Use Object constructor with new
  keyword
  • Creates a new object that inherits from
    Object
  • No arguments: new object




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Using the Object Constructor
• Use Object constructor with new
  keyword
  • Creates a new object that inherits from
    Object
  • No arguments: new object
  • Primitive type argument: create new
    Number, Boolean, or String object



          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Using an Object Literal




       Learn More @ http://www.learnnowonline.com
          Copyright © by Application Developers Training Company
Using an Object Literal
• Notable differences from Object
  constructor technique:




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Using an Object Literal
• Notable differences from Object
  constructor technique:
  • Single statement




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Using an Object Literal
• Notable differences from Object
  constructor technique:
  • Single statement
     var customer = { };




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Using an Object Literal
• Notable differences from Object
  constructor technique:
  • Single statement
     var customer = { };
  • Adding properties




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Using an Object Literal
• Notable differences from Object
  constructor technique:
  • Single statement
     var customer = { };
  • Adding properties
  • Defining getters and setters




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Creating an Object Hierarchy
with Prototypes




        Learn More @ http://www.learnnowonline.com
           Copyright © by Application Developers Training Company
Creating an Object Hierarchy
with Prototypes
• Can use customer as a prototype for
  other objects




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Creating an Object Hierarchy
with Prototypes
• Can use customer as a prototype for
  other objects
  • New objects inherit properties of the base
   object




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Creating an Object Hierarchy
with Prototypes
• Can use customer as a prototype for
  other objects
  • New objects inherit properties of the base
    object
  • Called the prototype of the new objects




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Creating an Object Hierarchy
with Prototypes
• Can use customer as a prototype for
  other objects
  • New objects inherit properties of the base
    object
  • Called the prototype of the new objects
  • Set of objects with same prototype is a
    class



          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Object Identity




       Learn More @ http://www.learnnowonline.com
          Copyright © by Application Developers Training Company
Object Identity
• Can use the isPrototypeOf method




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Object Identity
• Can use the isPrototypeOf method
  • See whether one object has another as its
   prototype




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Agenda




     Learn More @ http://www.learnnowonline.com
         Copyright © by Application Developers Training Company
Agenda
• Introduction to Object-Oriented
  JavaScript




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Agenda
• Introduction to Object-Oriented
  JavaScript
• Creating JavaScript Objects




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Agenda
• Introduction to Object-Oriented
  JavaScript
• Creating JavaScript Objects
• Custom Object Constructors




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Custom Object Constructors




      Learn More @ http://www.learnnowonline.com
         Copyright © by Application Developers Training Company
Custom Object Constructors
• Constructor is a function that
  initializes an object




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Custom Object Constructors
• Constructor is a function that
  initializes an object
  • Used with the new keyword




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Custom Object Constructors
• Constructor is a function that
  initializes an object
  • Used with the new keyword
     • This actually creates the object




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Custom Object Constructors
• Constructor is a function that
  initializes an object
  • Used with the new keyword
     • This actually creates the object
• Constructor’s prototype object
  becomes prototype of new object




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Custom Object Constructors
• Constructor is a function that
  initializes an object
  • Used with the new keyword
     • This actually creates the object
• Constructor’s prototype object
  becomes prototype of new object
  • So all objects created with the constructor
    share prototypes


            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Custom Object Constructors
• Constructor is a function that
  initializes an object
  • Used with the new keyword
     • This actually creates the object
• Constructor’s prototype object
  becomes prototype of new object
  • So all objects created with the constructor
    share prototypes
     • So all are members of the same class


            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Creating a New Constructor
Prototype Object




        Learn More @ http://www.learnnowonline.com
           Copyright © by Application Developers Training Company
Creating a New Constructor
Prototype Object
• Sample modified constructor’s default
  prototype object




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Creating a New Constructor
Prototype Object
• Sample modified constructor’s default
  prototype object
• Alternatively, can create a whole new
  object




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Creating a New Constructor
Prototype Object
• Sample modified constructor’s default
  prototype object
• Alternatively, can create a whole new
  object
  • Slightly cleaner code




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Creating a New Constructor
Prototype Object
• Sample modified constructor’s default
  prototype object
• Alternatively, can create a whole new
  object
  • Slightly cleaner code
     • Implement as single statement




           Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company
Creating a New Constructor
Prototype Object
• Sample modified constructor’s default
  prototype object
• Alternatively, can create a whole new
  object
  • Slightly cleaner code
     • Implement as single statement
     • Cleaner syntax




           Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company
Dynamically Changing the Prototype
of a Class




         Learn More @ http://www.learnnowonline.com
            Copyright © by Application Developers Training Company
Dynamically Changing the Prototype
of a Class
 • Benefit of using a prototype is you can
   dynamically change it




          Learn More @ http://www.learnnowonline.com
             Copyright © by Application Developers Training Company
Dynamically Changing the Prototype
of a Class
 • Benefit of using a prototype is you can
   dynamically change it
   • Automatically changes all objects in the
    class




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Dynamically Changing the Prototype
of a Class
 • Benefit of using a prototype is you can
   dynamically change it
   • Automatically changes all objects in the
     class
   • Object inherits from prototype even when
     prototype subsequently changes




           Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company
Dynamically Changing the Prototype
of a Class
 • Benefit of using a prototype is you can
   dynamically change it
   • Automatically changes all objects in the
     class
   • Object inherits from prototype even when
     prototype subsequently changes
   • Can even modify prototypes of built-in
     objects


           Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company
Object Identity with
Constructors




        Learn More @ http://www.learnnowonline.com
           Copyright © by Application Developers Training Company
Object Identity with
Constructors
 • instanceof operator




           Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company
Object Identity with
Constructors
 • instanceof operator
   • Determine whether an object is an instance
    created by a constructor




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Object Identity with
Constructors
 • instanceof operator
   • Determine whether an object is an instance
     created by a constructor
   • Operands




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Object Identity with
Constructors
 • instanceof operator
   • Determine whether an object is an instance
     created by a constructor
   • Operands
     • Object to test




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Object Identity with
Constructors
 • instanceof operator
   • Determine whether an object is an instance
     created by a constructor
   • Operands
     • Object to test
     • Constructor object to test against




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Object Identity with
Constructors
 • instanceof operator
   • Determine whether an object is an instance
     created by a constructor
   • Operands
     • Object to test
     • Constructor object to test against
   • Pass anything as first operand, but second
    must be a function object




            Learn More @ http://www.learnnowonline.com
               Copyright © by Application Developers Training Company
Object Identity with
Constructors
 • instanceof operator
   • Determine whether an object is an instance
     created by a constructor
   • Operands
      • Object to test
      • Constructor object to test against
   • Pass anything as first operand, but second
     must be a function object
 • Reinforce the idea that constructors are
   the public identity of a class of objects


             Learn More @ http://www.learnnowonline.com
                Copyright © by Application Developers Training Company
Learn More!




       Learn More @ http://www.learnnowonline.com
          Copyright © by Application Developers Training Company
Learn More!
• This is an excerpt from a larger course. Visit
  www.learnnowonline.com for the full details!




           Learn More @ http://www.learnnowonline.com
              Copyright © by Application Developers Training Company

More Related Content

Similar to Object-Oriented JavaScript

Similar to Object-Oriented JavaScript (20)

SharePoint Document Management
SharePoint Document ManagementSharePoint Document Management
SharePoint Document Management
 
The Entity Data Model
The Entity Data ModelThe Entity Data Model
The Entity Data Model
 
Managing site collections
Managing site collectionsManaging site collections
Managing site collections
 
Bring a Web Page Alive with jQuery
Bring a Web Page Alive with jQueryBring a Web Page Alive with jQuery
Bring a Web Page Alive with jQuery
 
Web API Basics
Web API BasicsWeb API Basics
Web API Basics
 
Building Windows 8 Metro Style Applications Using JavaScript and HTML5
Building Windows 8 Metro Style Applications Using JavaScript and HTML5Building Windows 8 Metro Style Applications Using JavaScript and HTML5
Building Windows 8 Metro Style Applications Using JavaScript and HTML5
 
Introducing the Entity Framework
Introducing the Entity FrameworkIntroducing the Entity Framework
Introducing the Entity Framework
 
What's new in Silverlight 5
What's new in Silverlight 5What's new in Silverlight 5
What's new in Silverlight 5
 
WPF: Working with Data
WPF: Working with DataWPF: Working with Data
WPF: Working with Data
 
Object oriented techniques
Object oriented techniquesObject oriented techniques
Object oriented techniques
 
KnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVCKnockOutJS with ASP.NET MVC
KnockOutJS with ASP.NET MVC
 
Attributes, reflection, and dynamic programming
Attributes, reflection, and dynamic programmingAttributes, reflection, and dynamic programming
Attributes, reflection, and dynamic programming
 
New in the Visual Studio 2012 IDE
New in the Visual Studio 2012 IDENew in the Visual Studio 2012 IDE
New in the Visual Studio 2012 IDE
 
Generics
GenericsGenerics
Generics
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
 
SQL: Permissions and Data Protection
SQL: Permissions and Data ProtectionSQL: Permissions and Data Protection
SQL: Permissions and Data Protection
 
.NET Variables and Data Types
.NET Variables and Data Types.NET Variables and Data Types
.NET Variables and Data Types
 
.Net branching and flow control
.Net branching and flow control.Net branching and flow control
.Net branching and flow control
 
Getting Started with .NET
Getting Started with .NETGetting Started with .NET
Getting Started with .NET
 
slides.pptx
slides.pptxslides.pptx
slides.pptx
 

More from LearnNowOnline (8)

A tour of SQL Server
A tour of SQL ServerA tour of SQL Server
A tour of SQL Server
 
Introducing LINQ
Introducing LINQIntroducing LINQ
Introducing LINQ
 
SharePoint: Introduction to InfoPath
SharePoint: Introduction to InfoPathSharePoint: Introduction to InfoPath
SharePoint: Introduction to InfoPath
 
SQL Server: Security
SQL Server: SecuritySQL Server: Security
SQL Server: Security
 
Sql 2012 development and programming
Sql 2012  development and programmingSql 2012  development and programming
Sql 2012 development and programming
 
Expression Blend Motion & Interaction Design
Expression Blend Motion & Interaction DesignExpression Blend Motion & Interaction Design
Expression Blend Motion & Interaction Design
 
Working with Controllers and Actions in MVC
Working with Controllers and Actions in MVCWorking with Controllers and Actions in MVC
Working with Controllers and Actions in MVC
 
Creating a User Interface
Creating a User InterfaceCreating a User Interface
Creating a User Interface
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 

Object-Oriented JavaScript

  • 1. Object-Oriented JavaScript Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 2. Objectives Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 3. Objectives • Learn about the various ways to create new objects with JavaScript Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 4. Objectives • Learn about the various ways to create new objects with JavaScript • Explore how you can create custom constructors to instantiate multiple objects of the same class Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 5. Introduction to Object-Oriented JavaScript Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 6. Introduction to Object-Oriented JavaScript • Possible to build sophisticated frameworks Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 7. Introduction to Object-Oriented JavaScript • Possible to build sophisticated frameworks • jQuery for general Web development Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 8. Introduction to Object-Oriented JavaScript • Possible to build sophisticated frameworks • jQuery for general Web development • OOP uses abstraction to create models of real objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 9. Introduction to Object-Oriented JavaScript • Possible to build sophisticated frameworks • jQuery for general Web development • OOP uses abstraction to create models of real objects • Store own data and state Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 10. Introduction to Object-Oriented JavaScript • Possible to build sophisticated frameworks • jQuery for general Web development • OOP uses abstraction to create models of real objects • Store own data and state • Receive messages Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 11. Introduction to Object-Oriented JavaScript • Possible to build sophisticated frameworks • jQuery for general Web development • OOP uses abstraction to create models of real objects • Store own data and state • Receive messages • Interact with other objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 12. Agenda Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 13. Agenda • Introduction to Object-Oriented JavaScript Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 14. Agenda • Introduction to Object-Oriented JavaScript • Creating JavaScript Objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 15. Agenda • Introduction to Object-Oriented JavaScript • Creating JavaScript Objects • Custom Object Constructors Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 16. Creating JavaScript Objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 17. Creating JavaScript Objects • Number of ways to create custom objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 18. Creating JavaScript Objects • Number of ways to create custom objects • Customer object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 19. Creating JavaScript Objects • Number of ways to create custom objects • Customer object • Properties to record data like ID, name, location Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 20. Creating JavaScript Objects • Number of ways to create custom objects • Customer object • Properties to record data like ID, name, location • Some direct properties, others getter/setters Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 21. Creating JavaScript Objects • Number of ways to create custom objects • Customer object • Properties to record data like ID, name, location • Some direct properties, others getter/setters • Override Object.toString Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 22. Creating JavaScript Objects • Number of ways to create custom objects • Customer object • Properties to record data like ID, name, location • Some direct properties, others getter/setters • Override Object.toString • Method to record sales Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 23. Using the Object Constructor Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 24. Using the Object Constructor • Use Object constructor with new keyword Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 25. Using the Object Constructor • Use Object constructor with new keyword • Creates a new object that inherits from Object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 26. Using the Object Constructor • Use Object constructor with new keyword • Creates a new object that inherits from Object • No arguments: new object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 27. Using the Object Constructor • Use Object constructor with new keyword • Creates a new object that inherits from Object • No arguments: new object • Primitive type argument: create new Number, Boolean, or String object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 28. Using an Object Literal Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 29. Using an Object Literal • Notable differences from Object constructor technique: Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 30. Using an Object Literal • Notable differences from Object constructor technique: • Single statement Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 31. Using an Object Literal • Notable differences from Object constructor technique: • Single statement var customer = { }; Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 32. Using an Object Literal • Notable differences from Object constructor technique: • Single statement var customer = { }; • Adding properties Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 33. Using an Object Literal • Notable differences from Object constructor technique: • Single statement var customer = { }; • Adding properties • Defining getters and setters Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 34. Creating an Object Hierarchy with Prototypes Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 35. Creating an Object Hierarchy with Prototypes • Can use customer as a prototype for other objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 36. Creating an Object Hierarchy with Prototypes • Can use customer as a prototype for other objects • New objects inherit properties of the base object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 37. Creating an Object Hierarchy with Prototypes • Can use customer as a prototype for other objects • New objects inherit properties of the base object • Called the prototype of the new objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 38. Creating an Object Hierarchy with Prototypes • Can use customer as a prototype for other objects • New objects inherit properties of the base object • Called the prototype of the new objects • Set of objects with same prototype is a class Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 39. Object Identity Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 40. Object Identity • Can use the isPrototypeOf method Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 41. Object Identity • Can use the isPrototypeOf method • See whether one object has another as its prototype Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 42. Agenda Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 43. Agenda • Introduction to Object-Oriented JavaScript Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 44. Agenda • Introduction to Object-Oriented JavaScript • Creating JavaScript Objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 45. Agenda • Introduction to Object-Oriented JavaScript • Creating JavaScript Objects • Custom Object Constructors Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 46. Custom Object Constructors Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 47. Custom Object Constructors • Constructor is a function that initializes an object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 48. Custom Object Constructors • Constructor is a function that initializes an object • Used with the new keyword Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 49. Custom Object Constructors • Constructor is a function that initializes an object • Used with the new keyword • This actually creates the object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 50. Custom Object Constructors • Constructor is a function that initializes an object • Used with the new keyword • This actually creates the object • Constructor’s prototype object becomes prototype of new object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 51. Custom Object Constructors • Constructor is a function that initializes an object • Used with the new keyword • This actually creates the object • Constructor’s prototype object becomes prototype of new object • So all objects created with the constructor share prototypes Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 52. Custom Object Constructors • Constructor is a function that initializes an object • Used with the new keyword • This actually creates the object • Constructor’s prototype object becomes prototype of new object • So all objects created with the constructor share prototypes • So all are members of the same class Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 53. Creating a New Constructor Prototype Object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 54. Creating a New Constructor Prototype Object • Sample modified constructor’s default prototype object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 55. Creating a New Constructor Prototype Object • Sample modified constructor’s default prototype object • Alternatively, can create a whole new object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 56. Creating a New Constructor Prototype Object • Sample modified constructor’s default prototype object • Alternatively, can create a whole new object • Slightly cleaner code Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 57. Creating a New Constructor Prototype Object • Sample modified constructor’s default prototype object • Alternatively, can create a whole new object • Slightly cleaner code • Implement as single statement Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 58. Creating a New Constructor Prototype Object • Sample modified constructor’s default prototype object • Alternatively, can create a whole new object • Slightly cleaner code • Implement as single statement • Cleaner syntax Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 59. Dynamically Changing the Prototype of a Class Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 60. Dynamically Changing the Prototype of a Class • Benefit of using a prototype is you can dynamically change it Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 61. Dynamically Changing the Prototype of a Class • Benefit of using a prototype is you can dynamically change it • Automatically changes all objects in the class Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 62. Dynamically Changing the Prototype of a Class • Benefit of using a prototype is you can dynamically change it • Automatically changes all objects in the class • Object inherits from prototype even when prototype subsequently changes Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 63. Dynamically Changing the Prototype of a Class • Benefit of using a prototype is you can dynamically change it • Automatically changes all objects in the class • Object inherits from prototype even when prototype subsequently changes • Can even modify prototypes of built-in objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 64. Object Identity with Constructors Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 65. Object Identity with Constructors • instanceof operator Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 66. Object Identity with Constructors • instanceof operator • Determine whether an object is an instance created by a constructor Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 67. Object Identity with Constructors • instanceof operator • Determine whether an object is an instance created by a constructor • Operands Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 68. Object Identity with Constructors • instanceof operator • Determine whether an object is an instance created by a constructor • Operands • Object to test Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 69. Object Identity with Constructors • instanceof operator • Determine whether an object is an instance created by a constructor • Operands • Object to test • Constructor object to test against Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 70. Object Identity with Constructors • instanceof operator • Determine whether an object is an instance created by a constructor • Operands • Object to test • Constructor object to test against • Pass anything as first operand, but second must be a function object Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 71. Object Identity with Constructors • instanceof operator • Determine whether an object is an instance created by a constructor • Operands • Object to test • Constructor object to test against • Pass anything as first operand, but second must be a function object • Reinforce the idea that constructors are the public identity of a class of objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 72. Learn More! Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
  • 73. Learn More! • This is an excerpt from a larger course. Visit www.learnnowonline.com for the full details! Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. DEMO – rest of section\n
  25. DEMO – rest of section\n
  26. DEMO – rest of section\n
  27. DEMO – rest of section\n
  28. DEMO – rest of section\n
  29. DEMO – rest of section\n
  30. DEMO – rest of section\n
  31. DEMO – rest of section\n
  32. DEMO – rest of section\n
  33. DEMO – rest of section\n
  34. DEMO – rest of section\n
  35. DEMO – rest of section\n
  36. DEMO – rest of section\n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. DEMO – Creating an Object Constructor section\n
  43. DEMO – Creating an Object Constructor section\n
  44. DEMO – Creating an Object Constructor section\n
  45. DEMO – Creating an Object Constructor section\n
  46. DEMO – Creating an Object Constructor section\n
  47. DEMO – Creating an Object Constructor section\n
  48. DEMO – rest of section\n
  49. DEMO – rest of section\n
  50. DEMO – rest of section\n
  51. DEMO – rest of section\n
  52. DEMO – rest of section\n
  53. DEMO – rest of section\n
  54. DEMO – rest of section\n
  55. DEMO – rest of section\n
  56. DEMO – rest of section\n
  57. DEMO – rest of section\n
  58. DEMO – rest of section\n
  59. DEMO – rest of section\n
  60. DEMO – rest of section\n
  61. DEMO – rest of section\n
  62. DEMO – rest of section\n
  63. DEMO – rest of section\n
  64. DEMO: rest of section\n