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;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 |