Jestem częścią małej grupy analitycznej w pracy, która stara się lepiej zrozumieć, co powoduje, że JavaScript działa. W naszych ostatnich dyskusjach na temat obiektów dowiedzieliśmy się, że publiczne metody obiektu są odtwarzane za każdym razem, gdy obiekt jest tworzony, podczas gdy metody przypisane do prototypu obiektu są tworzone tylko raz i dziedziczone przez wszystkie instancje. Z tego, co rozumiem, zarówno publiczne metody, jak i metody przypisane do prototypu są publicznie dostępne.Dlaczego warto używać publicznych metod w obiektach JavaScript?
Mam zatem pytanie, po co w ogóle tworzyć publiczne metody, jeśli dodanie do prototypu jest najwyraźniej bardziej wydajne? Jakie korzyści zapewnia metoda publiczna, której prototyp nie zapewnia?
Prototype dodatek do obiektu tworzy tę samą metodę do innych obiektów tej samej klasy (w tym przypadku funkcji), aby być dodany. na przykład jeśli mam 'var name = new Student()' i dodałem prototyp do nazwy byłoby dostępne dla 'var name2 = new Student()' oraz –
@AkshayKhandelwal Zakładając, że OP oznacza wykonanie 'this.GetName = function() {...} 'wewnątrz konstruktora' Studenta', możesz uzyskać do niego dostęp także z obu, jednak jest "odtworzony za każdym razem". –
Kolejne podobne pytanie: [Zalety korzystania z prototypu, a czy definiowanie metod bezpośrednio w konstruktorze?] (Http://stackoverflow.com/questions/4508313/advantages-of-using-prototype-vs-definining-metrical-rightight-in -the-constructor? rq = 1) –