Bug #090
🪲 Znajdź buga
const obj = {
foo() {
return "foo"
},
get bar() {
return "bar"
},
}
console.log(obj.foo())
console.log(obj.bar())
Obiekty (i klasy) w JavaScript mogą używać tzw. getter'ów.
Czy powyższa konstrukcja składniowa zadziała prawidłowo?
🧪 Rozwiązanie
const obj = {
foo() {
return "foo"
},
get bar() {
return "bar"
},
}
console.log(obj.foo())
console.log(obj.bar)
Getter'y służą do pobierania informacji i powinny być wywoływane jak własności obiektu, a nie metody (czyli bez nawiasów).
Getter'y nie obsługują też parametrów. Nie moglibyśmy stworzyć getter'a get bar(param)
.
W związku z powyższym, w przykładzie z błędem, w 11 linii zostanie wyrzucony błąd obj.bar is not a function
.
Aby go naprawić, wystarczy, że usuniemy nawiasy z wywołania bar
.
🎢 Plac zabaw
Otwórz edytor w nowym oknie📑 Linki
❤️ Podobają Ci się bugi JS?
Podziel się linkiem ze znajomymi:
https://codisity.pl/100-bugow-js