Guest User

Untitled

a guest
Jan 19th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width">
  6. <title>JS Bin</title>
  7. </head>
  8. <body>
  9.  
  10. <script id="jsbin-javascript">
  11. "use strict";
  12.  
  13. // this is some practice with "classes" in JS
  14.  
  15. // create my 'parent class'
  16. class Store {
  17. constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits) {
  18. this._storeName = storeName;
  19. this._locationNumber = locationNumber;
  20. this._additionalWaterUnits = additionalWaterUnits;
  21. this._additionalElectricityUnits = additionalElectricityUnits;
  22. this._baseRent = 900;
  23. this._waterUnitPrice = 40;
  24. this._electricUnitPrice = 90;
  25. this._accessToMainFacility = true;
  26. }
  27.  
  28. get storeName() {
  29. return this._storename;
  30. }
  31.  
  32. get locationNumber(){
  33. return this._locationNumber;
  34. }
  35.  
  36. get additionalWaterUnits() {
  37. return this._additionalWaterUnits;
  38. }
  39.  
  40. get additionalElectricityUnits() {
  41. return this._additionalElectricityUnits;
  42. }
  43.  
  44. revokeAccessToMainFacility() {
  45. this._accessToMainFacility = false;
  46. }
  47.  
  48. instateAccessToMainFacility() {
  49. this._accessToMainFacility = true;
  50. }
  51.  
  52. calculateTotalRent() {
  53. return this._baseRent + (this._waterUnitPrice * this._additionalWaterUnits) + (this._electricUnitPrice * this._additionalElectricityUnits);
  54. }
  55.  
  56. printTotalRent() {
  57. console.log('Rent for ' + this._storeName + ':');
  58. console.log('Base rent: ' + this._baseRent);
  59. console.log(this._additionalWaterUnits + ' additional water units at ' + this._waterUnitPrice + ' per unit');
  60. console.log(this._additionalElectricityUnits + ' additional electric units at ' + this._electricUnitPrice + ' per unit');
  61. console.log('Total rent: ' + calculateTotalRent());
  62. }
  63. }
  64.  
  65. class RetailStore extends Store {
  66. constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits){
  67. super(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits);
  68. }
  69. }
  70.  
  71. class FoodSales extends Store {
  72. constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits, permitsAsArray, numberOfAnnualInspections){
  73. super(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits);
  74. this._permitsAsArray = permitsAsArray;
  75. this._numberOfAnnualInspections = numberOfAnnualInspections;
  76. this._arePermitsValid = true;
  77. this._areInspectionsCurrent = true;
  78. }
  79.  
  80. get permitsAsArray() {
  81. return this._permitsAsArray;
  82. }
  83.  
  84. get numberOfAnnualInspections() {
  85. return this._numberOfAnnualInspections;
  86. }
  87.  
  88. invalidPermits() {
  89. this._arePermitsValid = false;
  90. }
  91.  
  92. allPermitsValid() {
  93. this._arePermitsVaild = true;
  94. }
  95.  
  96. inspectionsNotCurrent() {
  97. this._areInspectionsCurrent = false;
  98. }
  99.  
  100. allInspectionsCurrent() {
  101. this._areInspectionsCurrent = true;
  102. }
  103. }
  104.  
  105. const coolElectronics = new RetailStore('Cool Electronics', 302, 0, 4);
  106. console.log(coolElectronics.calculateTotalRent());
  107. coolElectronics.printTotalRent();
  108. </script>
  109.  
  110.  
  111.  
  112. <script id="jsbin-source-javascript" type="text/javascript">"use strict";
  113.  
  114. // this is some practice with "classes" in JS
  115.  
  116. // create my 'parent class'
  117. class Store {
  118. constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits) {
  119. this._storeName = storeName;
  120. this._locationNumber = locationNumber;
  121. this._additionalWaterUnits = additionalWaterUnits;
  122. this._additionalElectricityUnits = additionalElectricityUnits;
  123. this._baseRent = 900;
  124. this._waterUnitPrice = 40;
  125. this._electricUnitPrice = 90;
  126. this._accessToMainFacility = true;
  127. }
  128.  
  129. get storeName() {
  130. return this._storename;
  131. }
  132.  
  133. get locationNumber(){
  134. return this._locationNumber;
  135. }
  136.  
  137. get additionalWaterUnits() {
  138. return this._additionalWaterUnits;
  139. }
  140.  
  141. get additionalElectricityUnits() {
  142. return this._additionalElectricityUnits;
  143. }
  144.  
  145. revokeAccessToMainFacility() {
  146. this._accessToMainFacility = false;
  147. }
  148.  
  149. instateAccessToMainFacility() {
  150. this._accessToMainFacility = true;
  151. }
  152.  
  153. calculateTotalRent() {
  154. return this._baseRent + (this._waterUnitPrice * this._additionalWaterUnits) + (this._electricUnitPrice * this._additionalElectricityUnits);
  155. }
  156.  
  157. printTotalRent() {
  158. console.log('Rent for ' + this._storeName + ':');
  159. console.log('Base rent: ' + this._baseRent);
  160. console.log(this._additionalWaterUnits + ' additional water units at ' + this._waterUnitPrice + ' per unit');
  161. console.log(this._additionalElectricityUnits + ' additional electric units at ' + this._electricUnitPrice + ' per unit');
  162. console.log('Total rent: ' + calculateTotalRent());
  163. }
  164. }
  165.  
  166. class RetailStore extends Store {
  167. constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits){
  168. super(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits);
  169. }
  170. }
  171.  
  172. class FoodSales extends Store {
  173. constructor(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits, permitsAsArray, numberOfAnnualInspections){
  174. super(storeName, locationNumber, additionalWaterUnits, additionalElectricityUnits);
  175. this._permitsAsArray = permitsAsArray;
  176. this._numberOfAnnualInspections = numberOfAnnualInspections;
  177. this._arePermitsValid = true;
  178. this._areInspectionsCurrent = true;
  179. }
  180.  
  181. get permitsAsArray() {
  182. return this._permitsAsArray;
  183. }
  184.  
  185. get numberOfAnnualInspections() {
  186. return this._numberOfAnnualInspections;
  187. }
  188.  
  189. invalidPermits() {
  190. this._arePermitsValid = false;
  191. }
  192.  
  193. allPermitsValid() {
  194. this._arePermitsVaild = true;
  195. }
  196.  
  197. inspectionsNotCurrent() {
  198. this._areInspectionsCurrent = false;
  199. }
  200.  
  201. allInspectionsCurrent() {
  202. this._areInspectionsCurrent = true;
  203. }
  204. }
  205.  
  206. const coolElectronics = new RetailStore('Cool Electronics', 302, 0, 4);
  207. console.log(coolElectronics.calculateTotalRent());
  208. coolElectronics.printTotalRent();</script></body>
  209. </html>
Add Comment
Please, Sign In to add comment