Źródło: Arkusze CKE
Co zostanie wyświetlone po wykonaniu poniższego kodu?
function Person(name) {
this.name = name;
}
Person.prototype.sayHello = function() {
return Hello, ${this.name}!;
};
const person = new Person('John');
console.log(person.sayHello());
Warianty odpowiedzi
-
A
Hello, undefined!
-
B
Hello, John!
-
C
TypeError: person.sayHello is not a function
-
D
Hello, [object Object]!
Wyjaśnienie
Kod demonstruje tradycyjne podejście do obiektowości w JavaScript z wykorzystaniem prototypów.
Funkcja Person pełni rolę konstruktora, który przy tworzeniu nowego obiektu przypisuje przekazane imię do właściwości name. Metoda sayHello zostaje dodana do prototypu, dzięki czemu jest współdzielona przez wszystkie instancje.
Tworząc obiekt poprzez new Person('John'), przypisujemy do właściwości name wartość John.
Wywołanie metody sięga do prototypu i zwraca sformatowany tekst Hello, John!.