Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> es6 przekazanie parametrów
d4ng
post 22.07.2017, 19:02:50
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 4
Dołączył: 7.03.2010

Ostrzeżenie: (0%)
-----


Cześć ucze się es6 i nie bardzo wiem dlaczego przy tworzeniu new i przekazywaniu parametrów html i js sie nie zmienia? (26 linijka) Czy da się zmienić wartości obiektu skills przekazując je przy tworzeniu new a nie przez metode setSkills?

[JAVASCRIPT] pobierz, plaintext
  1. class Person { // super klasa - rodzic zawsze z dużej litery
  2. constructor(age, skills) {
  3. this.age = age; // przypisanie wartości z przekazanego argumentu
  4. this.skills = {
  5. html: 0,
  6. js: 0
  7. };
  8. }
  9. setSkills(html, js) { // metody tworzymy bez słowa function
  10. this.skills.html += html;
  11. this.skills.js += js;
  12. }
  13.  
  14. static viewMessage() {
  15. return 'Hi There';
  16. }
  17. }
  18.  
  19. class Developer extends Person { // rozszezenie rodzica - dziecko
  20. constructor(age, skills) {
  21. super(age, skills);
  22. this.skills.css = 5;
  23. }
  24. }
  25.  
  26. const jarek = new Developer(28, {html: 4, js: 3}); // const jeżlei ma to być stała opcjonalnie let
  27. console.log(jarek); // Developer {age: 28, skills: {html: 0, js: 0, css: 5}}
  28. jarek.setSkills(5, 3); // a powinno być Developer {age: 28, skills: {html: 4, js: 3, css: 5}}
  29. console.log(jarek); // Developer {age: 28, skills: {html: 5, js: 3, css: 5}}
[JAVASCRIPT] pobierz, plaintext


Ten post edytował d4ng 22.07.2017, 19:05:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
trueblue
post 22.07.2017, 19:42:51
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Przecież w klasie Person ustawiasz obydwie właściwości na 0.


--------------------
Go to the top of the page
+Quote Post
d4ng
post 22.07.2017, 19:52:06
Post #3





Grupa: Zarejestrowani
Postów: 191
Pomógł: 4
Dołączył: 7.03.2010

Ostrzeżenie: (0%)
-----


faktycznie bo są to wartości deafultowe .. teraz jest ok.


[JAVASCRIPT] pobierz, plaintext
  1. class Person { // super klasa - rodzic zawsze z dużej litery
  2. constructor(age, skills) {
  3. this.age = age; // przypisanie wartości z przekazanego argumentu
  4. this.fun = '100%';
  5. this.skills = {
  6. html: skills.html,
  7. js: skills.js
  8. };
  9. }
  10. set Skills(value) { // możemy korzystać z set, get
  11. this.skills.html = value.html;
  12. this.skills.js = value.js;
  13. }
  14.  
  15. get Skills() {
  16. return this.skills;
  17. }
  18.  
  19. static viewMessage() {
  20. return 'Hi There';
  21. }
  22. }
  23.  
  24. class Developer extends Person { // rozszezenie rodzica - dziecko
  25. constructor(age, skills) {
  26. super(age, skills);
  27. this.skills.css = 5;
  28. }
  29. }
  30.  
  31. const jarek = new Developer(28, {html: 4, js: 3}); // const jeżlei ma to być stała opcjonalnie let
  32. console.log(jarek); // Developer {age: 28, fun: "100%", skills: {html: 4, js: 3, css: 5}}
  33. jarek.Skills = {html: 5, js: 4}; // {html: 5, js: 4, css: 5}
  34. console.log(jarek.Skills); // nie przypisując wartosci odwoływuje się do get'a
  35. console.log(jarek); // Developer {age: 28, fun: "100%", skills: {html: 5, js: 4, css: 5}}
[JAVASCRIPT] pobierz, plaintext


Ten post edytował d4ng 22.07.2017, 20:25:20
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:34