1.
AGGREGATION: also know as "composition", ability to combine several objects into a new one
2.
aggregation, composition: Bob is part of dev team object , with Jill, designer object, & Jack project manager object
3.
CLASSES: Class = blueprint, recipe
note: no classes in js, everything is based on objects, it is prototypal OO language
4.
ENCAPSULATION: Object contains both: data stored in properties
Means to do something w the data (using methods)
5.
encapsulation: Bob holds data (e.g. birth date) and methods that work with the data (e.g. calculate age)
6.
information hiding: don't need to know how calculation method works internally
7.
INHERITANCE: reuse code already written. in javascript objects inherit from other objects, usually adds new methods (verb) to inherited ones — "extending" the old object "B inherits from A" & "B extends A"
note: object that inherits methods can pick one or more and redefine them, customizing or "overriding"
8.
inheritance: designer, project manager & programmer are all based on and extend a person object
9.
methods: Bob can eat sleep drink dream talk calculate his age
10.
OBJECTS: Objects = things (instance), nouns
Methods = actions, verbs
Values of properties = characteristics, adjectives
Black cat sleeps on the chair
Object: Cat = noun
Value of property: black = adjective
Method: sleeps = verb
On the chair specifies the action acts as parameter passed to sleep method
11.
objects: Bob is a man(object)
12.
PLOYMORPHISM: ability to to call the same method on different objects — each respond in their own way
13.
polymorphism, method overriding: you can call methods Bob:talk, Jill:talk & Jack:talk and all will work fine producing different results. each "object" inherited the "method" talk from Person and customized it
14.
properties: Bob's date of birth is June 1st, 1980, gender: male, hair: black
15.
prototype (OOP): Bob is based on another object called Programmer