Guest User

Untitled

a guest
Dec 9th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. //***************************
  2. // Functional Classes method
  3. //***************************
  4. var Dog = function(name, breed, age) {
  5. var obj = {};
  6. obj.name = name;
  7. obj.breed = breed;
  8. obj.age = age;
  9. extend(obj, Dog.status);
  10. extend(obj, Dog.actions);
  11. return obj;
  12. };
  13.  
  14. var extend = function(obj1, obj2) {
  15. for(var key in obj2) {
  16. obj1[key] = obj2[key]
  17. }
  18. };
  19.  
  20. Dog.status = {
  21. 'happiness' : 50,
  22. 'hunger' : 20,
  23. 'energy' : 50
  24. };
  25.  
  26. Dog.actions = {
  27. 'feed': function (food) {
  28. if(this.hunger - food > 0) {
  29. this.hunger -= food;
  30. } else {
  31. this.hunger = 0;
  32. };
  33. },
  34. 'play': function(time) {
  35. if(this.happiness + time < 100) {
  36. this.happiness += time;
  37. } else {
  38. this.happiness = 100;
  39. };
  40.  
  41. if(this.energy - time > 0) {
  42. this.energy -= time;
  43. } else {
  44. this.energy = 0;
  45. };
  46. },
  47. 'nap': function(time) {
  48. if(this.energy + time < 100) {
  49. this.energy += time;
  50. } else {
  51. this.energy = 100;
  52. };
  53. }
  54. };
  55.  
  56. //***************************
  57. //Prototypal Class method
  58. //***************************
  59. var Dog = function(name, breed, age) {
  60. var obj = Object.create(Dog.prototype);
  61. obj.name = name;
  62. obj.breed = breed;
  63. obj.age = age;
  64. obj.happiness = 50;
  65. obj.hunger = 20;
  66. obj.energy = 50;
  67. return obj;
  68. };
  69.  
  70. Dog.prototype.feed = function (food) {
  71. if(this.hunger - food > 0) {
  72. this.hunger -= food;
  73. } else {
  74. this.hunger = 0;
  75. };
  76. };
  77. Dog.prototype.play = function(time) {
  78. if(this.happiness + time < 100) {
  79. this.happiness += time;
  80. } else {
  81. this.happiness = 100;
  82. };
  83.  
  84. if(this.energy - time > 0) {
  85. this.energy -= time;
  86. } else {
  87. this.energy = 0;
  88. };
  89. };
  90. Dog.prototype.nap = function(time) {
  91. if(this.energy + time < 100) {
  92. this.energy += time;
  93. } else {
  94. this.energy = 100;
  95. };
  96. };
  97.  
  98.  
  99. //***************************
  100. //Pseudoclassical class method
  101. //***************************
  102.  
  103. var Dog = function(name, breed, age) {
  104. this.name = name;
  105. this.breed = breed;
  106. this.age = age;
  107. this.happiness = 50;
  108. this.hunger = 20;
  109. this.energy = 50;
  110. };
  111.  
  112. Dog.prototype.feed = function (food) {
  113. if(this.hunger - food > 0) {
  114. this.hunger -= food;
  115. } else {
  116. this.hunger = 0;
  117. };
  118. };
  119. Dog.prototype.play = function(time) {
  120. if(this.happiness + time < 100) {
  121. this.happiness += time;
  122. } else {
  123. this.happiness = 100;
  124. };
  125.  
  126. if(this.energy - time > 0) {
  127. this.energy -= time;
  128. } else {
  129. this.energy = 0;
  130. };
  131. };
  132. Dog.prototype.nap = function(time) {
  133. if(this.energy + time < 100) {
  134. this.energy += time;
  135. } else {
  136. this.energy = 100;
  137. };
  138. };
  139.  
  140.  
  141.  
  142. var tofu = new Dog('Tofu', 'chiuahuah', 7)
Add Comment
Please, Sign In to add comment