Guest User

Untitled

a guest
Mar 19th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. function MemberFactory() {
  2. this.createMember = function(name, type) {
  3. let member;
  4.  
  5. if(type === 'simple') {
  6. member = new SimpleMembership(name);
  7. } else if (type === 'standard') {
  8. member = new StandardMembership(name);
  9. } else if (type === 'super') {
  10. member = new SuperMembership(name);
  11. }
  12.  
  13. member.type = type;
  14.  
  15. member.define = function() {
  16. console.log(`${this.name} (${this.type}): ${this.cost}`);
  17. }
  18.  
  19. return member;
  20. }
  21. }
  22.  
  23. const SimpleMembership = function(name) {
  24. this.name = name;
  25. this.cost = '$5';
  26. }
  27.  
  28. const StandardMembership = function(name) {
  29. this.name = name;
  30. this.cost = '$15';
  31. }
  32.  
  33. const SuperMembership = function(name) {
  34. this.name = name;
  35. this.cost = '$25';
  36. }
  37.  
  38. const members = [];
  39. const factory = new MemberFactory();
  40.  
  41. members.push(factory.createMember('John Doe', 'simple'));
  42. members.push(factory.createMember('Chris Jackson', 'super'));
  43. members.push(factory.createMember('Janice Williams', 'simple'));
  44. members.push(factory.createMember('Tom Smith', 'standard'));
  45.  
  46. // console.log(members);
  47.  
  48. members.forEach(function(member) {
  49. member.define();
  50. });
Add Comment
Please, Sign In to add comment