https://github.com/truecodersio/javascript_oop
https://github.com/truecodersio/javascript_oop
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/truecodersio/javascript_oop
- Owner: truecodersio
- Created: 2021-01-08T02:29:47.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-08-23T18:03:52.000Z (almost 4 years ago)
- Last Synced: 2025-02-17T14:31:53.521Z (over 1 year ago)
- Language: HTML
- Size: 3.91 KB
- Stars: 1
- Watchers: 2
- Forks: 181
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# JavaScript Object-Oriented Programming
## Objective
Your objective is to practice OOP concepts and JS class notation syntax.
## Steps
### Getting Started
1. Open your command line and navigate to your `repos` directory (if you do not have a `repos` folder, then you can use `mkdir repos` to create one)
2. Use this template repository to start a new project in your repos folder: `git clone `
3. cd `repo_name` to navigate into your new repo directory
4. Start Visual Studio Code and select 'Open Folder'. Then select `repo_name` to open the folder in the editor (or just type `code .` in your terminal inside the repo directory)
5. Follow the instructions on the README.md file to complete exercises
6. Open the app.js file to get started
### Exercise 1
- Expanding from our exercise example during the lesson, create a parent class `class Person {}` with properties for `name`, `pets`, `residence`, and `hobbies`. The Person class will also have a method `info()` and `soundOff()`.
1. Use class notation to create a class named `Person`
2. Declare the `constructor()` method with parameters `name` (string), `pets` (number), `residence` (string), and `hobbies` (array) allowed to be passed in
3. The `constructor()` method assigns `this.` properties to each parameter
4. Declare an `addHobby()` method on the class that takes in a new `hobby` (string), and adds it to the object's `hobbies` array property
5. Declare a `removeHobby()` method on the class that takes in a `hobby` (string), and removes the hobby from the object's `hobbies` array property
6. Declare a `greeting()` method that `console.log`'s a generic greeting for a Person... ex: `greeting() {console.log("Hello fellow person!")}`
### Exercise 2
Now we'll create a subclass `Coder` that inherits from our `Person` class
1. Use class notation to create a class named `Coder` that inherits from the `Person` class
2. Declare the `constructor()` method with parameters `name` (string), `pets` (number), `residence` (string), and `hobbies` (array) allowed to be passed in
3. Call the `super()` method inside the `constructor` method and pass in the given parameters
4. Still inside the `constructor` body, assign `this.occupation` as `"Full Stack Web Developer"`
5. Override the `greeting()` method to `console.log` a custom greeting from a coder...
### Exercise 3
Let's create instances of our classes
1. Create a variable and assign a Person object to it using the `new` keyword followed by the class `constructor`
2. Create a variable and assign a Coder object to it using the `new` keyword followed by the class `constructor`
3. Call the object methods and `console.log` the object properties to test your work
### Exercise 4
In this final exercise, we'll create a class that has the functionality of a basic calculator.
1. Create a class called `Calculator`
2. Initialize a `result` property within the calculator `constructor` with an initial value of `0`
3. Declare methods on the class that represent basic arithmetic: `add()`, `subtract()`, `multiply()`, `divide()`
- These methods should currently take in 2 parameters, and assign the result of the appropriate arithmetic based on the method name to the object's `result` property
- Should return the result
- EXTRA: if only one value is passed in, use the object's current `result` value as the first value in the operation
4. Declare a method called `displayResult()` that will `console.log` the result property stored on the object
5. Test your work by instantiating an object from your class (using the class constructor), and calling some of the calculator methods
---