Programowanie obiektowe to paradygmat programowania wykorzystujący „obiekty”: struktury danych składające się z pól danych i metod wraz z ich interakcjami.
MSDN mówi, że powinieneś używać struktur, gdy potrzebujesz lekkich obiektów. Czy istnieją inne scenariusze, w których struktura jest lepsza niż klasa? Niektórzy ludzie mogli zapomnieć, że: Struktury mogą mieć metody. Struktury nie mogą być dziedziczone. Rozumiem techniczne różnice między strukturami i klasami, po prostu nie mam pojęcia, kiedy użyć struktury.
W części dotyczącej dziedziczenia w artykule MDN Wstęp do JavaScript zorientowanego obiektowo zauważyłem, że ustawili prototype.constructor: // correct the constructor pointer because it points to Person Student.prototype.constructor = Student; Czy to ma jakiś ważny cel? Czy można to pominąć?
W końcu przestałem ciągnąć stopy przez te wszystkie lata i postanowiłem nauczyć się JavaScript „poprawnie”. Jednym z najbardziej porywających elementów projektowania języków jest implementacja dziedziczenia. Mając doświadczenie w Ruby, bardzo cieszyłem się z zamykania i dynamicznego pisania; ale przez całe życie nie mogę zrozumieć, jakie korzyści można uzyskać z instancji …
Wiem, że thisodnosi się to do bieżącego obiektu. Ale nie wiem, kiedy naprawdę muszę go użyć. Na przykład, czy będzie jakaś różnica, jeśli użyję xzamiast this.xniektórych metod? Może xbędzie dotyczyć zmiennej lokalnej dla rozważanej metody? Mam na myśli zmienną, która jest widoczna tylko w tej metodzie. Co this.method()? Mogę to …
Jak stworzyć klasę statyczną w C ++? Powinienem być w stanie zrobić coś takiego: cout << "bit 5 is " << BitParser::getBitAt(buffer, 5) << endl; Zakładając, że stworzyłem BitParserklasę. Jak wyglądałaby BitParserdefinicja klasy?
Wiem, że to zadziała: function Foo() {}; Foo.prototype.talk = function () { alert('hello~\n'); }; var a = new Foo; a.talk(); // 'hello~\n' Ale jeśli chcę zadzwonić Foo.talk() // this will not work Foo.prototype.talk() // this works correctly Znajduję metody na Foo.talkpracę, Foo.__proto__ = Foo.prototype Foo.talk = Foo.prototype.talk Czy są na …
Jedną z głównych zalet Javascript jest to, że jest to język oparty na prototypach. Ale co to znaczy, że JavaScript jest oparty na prototypach i dlaczego jest to zaleta?
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą specjalistyczną, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
Czy to dobry, czy zły pomysł, aby setery w javie zwracały „to”? public Employee setName(String name){ this.name = name; return this; } Ten wzorzec może być przydatny, ponieważ wtedy możesz ustawić łańcuchy ustawiające w następujący sposób: list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!")); zamiast tego: Employee e = new Employee(); e.setName("Jack Sparrow"); ...and so …
To pytanie do wywiadu. Czy podklasy dziedziczą pola prywatne? Odpowiedziałem „Nie”, ponieważ nie możemy uzyskać do nich dostępu w „normalny sposób OOP”. Jednak ankieter uważa, że są one dziedziczone, ponieważ możemy uzyskać dostęp do takich pól pośrednio lub za pomocą odbicia i nadal istnieją w obiekcie. Po powrocie znalazłem w …
Ostatnio studiowałem UML i rysowałem proste diagramy zwykłymi prostymi strzałkami między klasami, ale wiem, że to nie wystarczy. Istnieje wiele innych strzałek: uogólnienie, realizacja itp., Które mają znaczenie dla czytnika diagramów. Czy jest jakiś dobry zasób, który mógłby wyjaśnić każdą strzałkę (zwykły, prosty, kropkowany, wypełniony diamentem, diament)? Byłoby najlepiej, gdyby …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.