Frontend Development: JavaScript
🚀 ReDI Fall 2020 🚀
Lecture 8
Introduction to Object Oriented Programming
What we will do today
- FCC QA
- Homework QA
- Objects
- Closures
- Prototypes
- Prototyping Example
FCC & HW
Open to questions
What is "Object Oriented Programming"?
- Programming with classes and objects
- Class: Definition of data format and available procedures
- Object: Instance of a class
- Objects often correspond to real world things
An example
- Class "Cat"
- has 4 legs
- can meow
- sleeps a lot
-
One instance of this class:
Brief History about Javascript
Data types
-
Primitive types
- undefined
- boolean
- number
- string
- bigint
- symbol
-
Structural types
Our focus for today: Objects
(and Functions)
Summary: Constructors
"Construct" a new object and return it.
function Car(brand, horsePower) {
this.brand = brand;
this.horsePower = horsePower;
}
let myCar = new Car('Volkswagen', 100);
Summary: Prototypes
- By default, all objects have the type "Object".
- If an object was created by a constructor, its type is the constructor's prototype.
- Prototypes define the capabilities of an object, but not their contents.
- All prototypes inherit from "Object.prototype".
(Exception: primitive datatypes, such as string and number)
Summary: Prototypes
The prototype of a class is an instance of its parent class.
function Vehicle(wheels) { this.wheels = wheels; }
function Car() { Vehicle.call(this, 4); }
Car.prototype = Object.create(Vehicle.prototype);
// Car.prototype is a Vehicle instance.
function Boat() { Vehicle.call(this, 0); }
Boat.prototype = Object.create(Vehicle.prototype);
// Boat.prototype is a Vehicle instance.