Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width">
- <title>JS Bin</title>
- </head>
- <body>
- <script id="jsbin-javascript">
- "use strict";
- // this is some practice with "classes" in JS
- // create my 'parent class'
- class Store {
- constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits) {
- this._storeName = storeName;
- this._locationNumber = locationNumber;
- this._additionalWaterUnits = additionalWaterUnits;
- this._additionalElectricityUnits = additionalElectricityUnits;
- this._baseRent = 900;
- this._waterUnitPrice = 40;
- this._electricUnitPrice = 90;
- this._accessToMainFacility = true;
- }
- get storeName() {
- return this._storename;
- }
- get locationNumber(){
- return this._locationNumber;
- }
- get additionalWaterUnits() {
- return this._additionalWaterUnits;
- }
- get additionalElectricityUnits() {
- return this._additionalElectricityUnits;
- }
- revokeAccessToMainFacility() {
- this._accessToMainFacility = false;
- }
- instateAccessToMainFacility() {
- this._accessToMainFacility = true;
- }
- calculateTotalRent() {
- return this._baseRent + (this._waterUnitPrice * this._additionalWaterUnits) + (this._electricUnitPrice * this._additionalElectricityUnits);
- }
- printTotalRent() {
- console.log('Rent for ' + this._storeName + ':');
- console.log('Base rent: ' + this._baseRent);
- console.log(this._additionalWaterUnits + ' additional water units at ' + this._waterUnitPrice + ' per unit');
- console.log(this._additionalElectricityUnits + ' additional electric units at ' + this._electricUnitPrice + ' per unit');
- console.log('Total rent: ' + calculateTotalRent());
- }
- }
- class RetailStore extends Store {
- constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits){
- super(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits);
- }
- }
- class FoodSales extends Store {
- constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits, permitsAsArray, numberOfAnnualInspections){
- super(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits);
- this._permitsAsArray = permitsAsArray;
- this._numberOfAnnualInspections = numberOfAnnualInspections;
- this._arePermitsValid = true;
- this._areInspectionsCurrent = true;
- }
- get permitsAsArray() {
- return this._permitsAsArray;
- }
- get numberOfAnnualInspections() {
- return this._numberOfAnnualInspections;
- }
- invalidPermits() {
- this._arePermitsValid = false;
- }
- allPermitsValid() {
- this._arePermitsVaild = true;
- }
- inspectionsNotCurrent() {
- this._areInspectionsCurrent = false;
- }
- allInspectionsCurrent() {
- this._areInspectionsCurrent = true;
- }
- }
- const coolElectronics = new RetailStore('Cool Electronics', 302, 0, 4);
- console.log(coolElectronics.calculateTotalRent());
- coolElectronics.printTotalRent();
- </script>
- <script id="jsbin-source-javascript" type="text/javascript">"use strict";
- // this is some practice with "classes" in JS
- // create my 'parent class'
- class Store {
- constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits) {
- this._storeName = storeName;
- this._locationNumber = locationNumber;
- this._additionalWaterUnits = additionalWaterUnits;
- this._additionalElectricityUnits = additionalElectricityUnits;
- this._baseRent = 900;
- this._waterUnitPrice = 40;
- this._electricUnitPrice = 90;
- this._accessToMainFacility = true;
- }
- get storeName() {
- return this._storename;
- }
- get locationNumber(){
- return this._locationNumber;
- }
- get additionalWaterUnits() {
- return this._additionalWaterUnits;
- }
- get additionalElectricityUnits() {
- return this._additionalElectricityUnits;
- }
- revokeAccessToMainFacility() {
- this._accessToMainFacility = false;
- }
- instateAccessToMainFacility() {
- this._accessToMainFacility = true;
- }
- calculateTotalRent() {
- return this._baseRent + (this._waterUnitPrice * this._additionalWaterUnits) + (this._electricUnitPrice * this._additionalElectricityUnits);
- }
- printTotalRent() {
- console.log('Rent for ' + this._storeName + ':');
- console.log('Base rent: ' + this._baseRent);
- console.log(this._additionalWaterUnits + ' additional water units at ' + this._waterUnitPrice + ' per unit');
- console.log(this._additionalElectricityUnits + ' additional electric units at ' + this._electricUnitPrice + ' per unit');
- console.log('Total rent: ' + calculateTotalRent());
- }
- }
- class RetailStore extends Store {
- constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits){
- super(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits);
- }
- }
- class FoodSales extends Store {
- constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits, permitsAsArray, numberOfAnnualInspections){
- super(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits);
- this._permitsAsArray = permitsAsArray;
- this._numberOfAnnualInspections = numberOfAnnualInspections;
- this._arePermitsValid = true;
- this._areInspectionsCurrent = true;
- }
- get permitsAsArray() {
- return this._permitsAsArray;
- }
- get numberOfAnnualInspections() {
- return this._numberOfAnnualInspections;
- }
- invalidPermits() {
- this._arePermitsValid = false;
- }
- allPermitsValid() {
- this._arePermitsVaild = true;
- }
- inspectionsNotCurrent() {
- this._areInspectionsCurrent = false;
- }
- allInspectionsCurrent() {
- this._areInspectionsCurrent = true;
- }
- }
- const coolElectronics = new RetailStore('Cool Electronics', 302, 0, 4);
- console.log(coolElectronics.calculateTotalRent());
- coolElectronics.printTotalRent();</script></body>
- </html>
Add Comment
Please, Sign In to add comment