-
Data: 2015-09-29 10:17:59
Temat: Re: Javascript - jak tworzyć obiekty w strict mode?
Od: n...@t...net.pl szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu poniedziałek, 28 września 2015 15:46:46 UTC+2 użytkownik Marek napisał:
> W dniu 2015-09-28 o 09:02, n...@t...net.pl pisze:
>
>
> > Według spisu instrukcji piszą, że "prototype" daje możliwość
> > zewnętrznego (zwracam uwagę na - zewnętrznego), a ja dodam sztucznego,
> > dodawania właściwości do istniejącego bytu (funkcja/klasa).
>
> Wiesz... jest znacznie gorzej bo dochodzą takie konstrukcje jak:
>
> a.prototype=Object.create(b.prototype)
> a.prototype.construtor=...
>
> które nie wiadomo jak działają a służą do tworzenia dziedziczenia. Czyli
> co? Zmieniam właściwość "prototyp" dla instancji "a"???? Jakaś bzdura z
> tego powstaje. Zniesmacza mnie język, w którym trzeba uczyć się zaklęć
> zamiast stosowania mózgu. A najgorsze w tym jest to, że nie ma
> dokumentacji, która jasno mówiłaby "zrób tak lub siak" aby dziedziczenie
> osiągnąć lub "ten język nie ma dziedziczenia". Tymczasem wprowadzają
> jakieś prototypy nie wiadomo jak działające i każdy zgaduje do czego
> służą. Nic się kupy nie trzyma. No dobra, wyraziłem swoją frustrację :-)
> --
> Pozdrawiam,
> Marek
Najpierw musiałbyś powiedzieć do czego dążysz, co chcesz osiągnąć
bo twoje przykłady świadczą, że się chcesz nauczyć.
Musisz trzymać się konwencji języka.
Nie można napisać:
function f1()
{
this.a=null;
f1.prototype.b=null // dodajesz zmienną/właściwość - "b"
// (w tym miejscu takie dodawanie to trochę nie teges)
}
bo prawidłowo to jest tak:
function f1()
{
this.a=null;
this.b=null;
}
var o1=new f1(); // tworzysz obiekt "o1"
o1.a=1; // nadajesz wartości
o1.b=12;
f1.prtotyp.c=null; // teraz dodajesz nową zmienną/właściwość:
w1.c=123;
var o2=new f1(); // a teraz tworzysz nowy obiekt "o2"
o2.c=1234;
alert(o1.c+' i '+02.c);
Sztucznie można pokazać to tak, że funkcja/konstruktor/szablon do powielania
f1() ma teraz taką treść:
function f1()
{
this.a=null;
this.b=null;
this.c=null;
}
I co ci się kłóci.
Należy trzymać się konwencji języka i stosując tę konwencję kombinować
z kopiowaniem (dziedziczeniem).
Andrzej.
Następne wpisy z tego wątku
- 01.10.15 19:27 Marek
- 02.10.15 09:31 n...@t...net.pl
- 02.10.15 12:02 Marek
- 03.10.15 08:33 n...@t...net.pl
- 03.10.15 11:18 Cezary Tomczyk
- 03.10.15 12:17 Marek
- 03.10.15 12:20 Marek
- 05.10.15 09:33 n...@t...net.pl
- 06.10.15 17:39 Marek
- 08.10.15 11:03 n...@t...net.pl
Najnowsze wątki z tej grupy
- Jakie znacie działające serwery grup dyskusyjnych?
- is it live this group at news.icm.edu.pl
- php, linki z nazwami a $_GET, SEO
- www polityka pl captcha
- dyktatura brudnego palucha
- www.znanylekarz.pl
- Czy pytanie o sczytywanie stron programami/skryptami to tu?
- Grupy webdevowe
- Jak wydrukować stronę?
- IIS, kilka witryn
- linki <a href="/strona.php"> (ze slashami)
- co rozszerza stronę??
- responsywny akapit <p>
- Czy istnieje jakiś emulator przeglądarek pod Mac'a?
- taka sama konfiguracja dla localhost i produkcji
Najnowsze wątki
- 2024-12-12 Warszawa => Administrator Bezpieczeństwa IT <=
- 2024-12-12 Ostrów Wielkopolski => Trener zespołu sprzedaży Call Center <=
- 2024-12-12 Kraków => Key Account Manager <=
- 2024-12-11 SEP 1 kV E
- 2024-12-11 DNS restrictions are on
- 2024-12-11 wielkie bu
- 2024-12-11 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-11 Aku LiPo źródło dostaw - ktoś poleci ?
- 2024-12-11 Warszawa => Specjalista Bezpieczeństwa Informacji <=
- 2024-12-11 Wrocław => Application Security Engineer <=
- 2024-12-11 Warszawa => Analyst in the Trade Development department (experience wi
- 2024-12-11 Lublin => Programista Delphi <=
- 2024-12-11 Motodziennik #305 Nowy ELEKTRYK za 350 złotych miesięcznie? Kreatywne kredytowanie problemów
- 2024-12-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-11 Katowice => Key Account Manager (ERP) <=