50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
|
---
|
||
|
title: Use getters and setters to Control Access to an Object
|
||
|
---
|
||
|
## Use getters and setters to Control Access to an Object
|
||
|
|
||
|
<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds -->
|
||
|
Getters and setters are critical parts of a class/object. They allow you to control their attributes from the outside. They will become more prominent when you get started with the Object-Oriented Programming unit (coming up!). For now, this exercise shows you how to manipulate them with ES6.
|
||
|
|
||
|
## Hint 1:
|
||
|
|
||
|
Create the class, Thermostat. You're going to put your constructor, getter, and setter in here.
|
||
|
|
||
|
## Hint 2:
|
||
|
|
||
|
Give the constructor a parameter (which you can name anything you want). Set the parameter to an attribute of the same name. Remember, you are initially setting things in Farenheit temperature.
|
||
|
|
||
|
## Hint 3:
|
||
|
|
||
|
Create a get method that converts the Farenheit attribute to Celsius. Use the formula given to you.
|
||
|
|
||
|
## Hint 4:
|
||
|
|
||
|
Create a set method of the same name as the get method. It should have a parameter that accepts celsius temperature. Convert it to farenheit, and set it to the attribute.
|
||
|
|
||
|
## Spoiler Alert - Solution Ahead!
|
||
|
|
||
|
## Solution
|
||
|
|
||
|
```javascript
|
||
|
function makeClass() {
|
||
|
"use strict";
|
||
|
/* Alter code below this line */
|
||
|
|
||
|
class Thermostat{
|
||
|
constructor(farenheit){
|
||
|
this.farenheit = farenheit;
|
||
|
}
|
||
|
get temperature(){
|
||
|
return 5 / 9 * (this.farenheit - 32);
|
||
|
}
|
||
|
set temperature(celsius){
|
||
|
this.farenheit = celsius * 9.0 / 5 + 32;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* Alter code above this line */
|
||
|
return Thermostat;
|
||
|
}
|
||
|
```
|