-
Data: 2015-10-01 19:27:31
Temat: Re: Javascript - jak tworzyć obiekty w strict mode?
Od: Marek <p...@s...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2015-09-29 o 10:17, n...@t...net.pl pisze:
> I co ci się kłóci.
Już pokazuję co w "Twoim" podejściu się kłóci.
Mamy w klasie bazowej jak i pochodnej tak samo nazwaną zmienną (this.a):
function SuperClass(a,b)
{
this.a=a;
this.b=b;
}
SuperClass.prototype.parametry=function()
{
console.log("parametry", this.a, this.b);
};
function SubClass(a,b)
{
this.a=100;
SuperClass.call(this,a,b);
}
SubClass.prototype=Object.create(SuperClass.prototyp
e);
var obj=new SubClass(20,30);
obj.parametry();
console.log(obj.a);
Otrzymujemy:
parametry 20 30
20
Spodziewałbym się:
parametry 20 30
100
Wygląda na to, że zmienne używane w klasie bazowej są:
a) publiczne (czego nie chcę, ale mogę to jeszcze przełknąć)
b) nadpisywane zmiennymi z klasy potomnej!!!
Pisząc klasę potomną muszę zatem uważać aby nie powtórzyć nazwy zmiennej
z klasy bazowej. JS pozwala na tworzenie zmiennych gdziekolwiek w kodzie
więc w życiu nie dojdę jakie nazwy zmiennych są zastrzeżonymi. Mało tego
- jeśli w późniejszym czasie programista klasy bazowej dorzuci kolejną
zmienną to może rypnąć się cały projekt bo programiści klas potomnych
mogą już używać takiej nazwy zmiennej.
Nie wyobrażam sobie jak można nad tym zapanować w takim podejściu.
> Należy trzymać się konwencji języka i stosując tę konwencję kombinować
> z kopiowaniem (dziedziczeniem).
JS nie ma chyba nigdzie opisanej konwencji języka albo tych konwencji
jest tyle ilu programistów. Jeśli chcę się nauczyć C++, to kupuję
dowolny podręcznik i mam konwencję. W JS mogę co najmniej 3 "konwencje"
OOP przytoczyć i żadna z nich nie działa do końca.
--
Pozdrawiam,
Marek
Następne wpisy z tego wątku
- 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
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Do sądu trafił pozew zbiorowy przeciw Google'owi - oskarżenie o praktyki monopolistyczne na rynku reklamy internetowej
- 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>
Najnowsze wątki
- 2025-06-18 Wrocław => SAP ABAP Developer <=
- 2025-06-18 Łódź => Account Manager <=
- 2025-06-18 Warszawa => MLOps Engineer <=
- 2025-06-18 Warszawa => Software Engineer .Net <=
- 2025-06-18 Zakaz używania Kreta
- 2025-06-18 Gdańsk => Controlling systems Consultant <=
- 2025-06-18 Warszawa => Senior Programmer C <=
- 2025-06-18 W państwie tuskiego "prawa" obywatel/poseł ma obowiązek planować pod kątem że będzie aresztowany [Urbaniak]
- 2025-06-18 Warszawa => Mid/Senior IT Recruiter <=
- 2025-06-18 Lublin => Programista Delphi <=
- 2025-06-18 Warszawa => NMS System Administrator <=
- 2025-06-18 Re: Auto miało pozostać na wstecznym biegu z włączonym silnikiem. Kiedy kobieta ponownie wsiadła do pojazdu, mogło dojść do tragicznej pomyłki - zamiast wcisnąć hamulec, niefortunnie nacisnęła pedał gazu.
- 2025-06-17 Re: Auto miało pozostać na wstecznym biegu zwłączonym silnikiem. Kiedy kobieta ponownie wsiadła do pojazdu, mogło dojść do tragicznej pomyłki - zamiast wcisnąć hamulec, niefortunnie nacisnęła pedał gazu.
- 2025-06-17 Re: Auto miało pozostać na wstecznym biegu zwłączonym silnikiem. Kiedy kobieta ponownie wsiadła do pojazdu, mogło dojść do tragicznej pomyłki - zamiast wcisnąć hamulec, niefortunnie nacisnęła pedał gazu.
- 2025-06-17 Wymiana EGR