mituri

Wzorzec Factory functions

Feb 13th, 2021 (edited)
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function playerFactory(name) {
  2.   function getName() {
  3.     return name
  4.   }
  5.   return {getName}
  6. }
  7.  
  8. function teamFactory(name){
  9.   let players = [];
  10.  
  11.   function addPlayer(player){
  12.       players.push(player);
  13.     return players;
  14.   }
  15.  
  16.   function getName(){
  17.     return name;
  18.   }
  19.  
  20.   function getPlayers(){
  21.     return players;
  22.   }
  23.    
  24.   return { addPlayer, getName, getPlayers }
  25. }
  26.  
  27. const sunil = playerFactory("Sunil")
  28. console.log('sunil', sunil.getName())
  29. console.log('sunil.name', sunil.name) // undefined, brak dostepu, to głowna roznica miedzy uzywania factory functions i constructor functions w klasach
  30. // nie mozemy rowniez update'owac player.name.
  31.  
  32. const chicagoBulls = teamFactory("Chicago Bulls")
  33. chicagoBulls.addPlayer("Jordan")
  34. chicagoBulls.addPlayer("Rodman")
  35. chicagoBulls.addPlayer("Pippen")
  36.  
  37. console.log('chicagoBulls', chicagoBulls.getPlayers())
  38.  
  39. // głowny powod wykorzystywania fabryki: "get object to use it only"
Add Comment
Please, Sign In to add comment