-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: Marek <p...@s...com>
Newsgroups: pl.comp.www
Subject: JavaScript - jak działają prototypy?
Date: Mon, 21 Sep 2015 13:43:50 +0200
Organization: ICM, Uniwersytet Warszawski
Lines: 54
Message-ID: <mtoqho$73l$1@news.icm.edu.pl>
NNTP-Posting-Host: 89-69-222-145.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.icm.edu.pl 1442835832 7285 89.69.222.145 (21 Sep 2015 11:43:52 GMT)
X-Complaints-To: u...@n...icm.edu.pl
NNTP-Posting-Date: Mon, 21 Sep 2015 11:43:52 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101
Thunderbird/31.6.0
Xref: news-archive.icm.edu.pl pl.comp.www:403027
[ ukryj nagłówki ]Witam,
Czytałem w wielu miejscach teorie na ten temat lecz nigdzie temat nie
był potraktowany na tyle wyczerpująco abym mógł to pojąć. Nawet po
dłuższym czasie posługiwania się nimi na zasadzie "zrób tak, bo ktoś tak
zrobił" odkrywam powalające mnie na kolana, niezrozumiałe właściwości.
Proszę znawcę tematu o wyjaśnienie mi zasadę ich działania "jak chłop
krowie".
Oto przypadek, który ostatnio mnie "zastrzelił".
testClass(_data)
{
var data=_data;
testClass.prototype.read=function()
{
console.log("read",data);
};
}
aaa=new testClass(10);
aaa.read();
bbb=new testClass(20);
aaa.read();
daje wynik
10
20
Zamiast spodziewanego 10, 10. Czyli wynika z tego, ze data nie jest
zmienną lokalną dla instancji obiektu lecz jest współdzielona miedzy
nimi. A teraz uwaga! Zmieniam kod w innym miejscu niż obszar zmiennej:
testClass(_data)
{
var data=_data;
this.read=function()
{
console.log("read",data);
};
}
... i otrzymuję wynik:
10
10
WTF? O co tu chodzi?
--
Pozdrawiam,
Marek
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
- 2025-03-28 A gdyby to był elektryk?
- 2025-03-28 Współczesny falomierz
- 2025-03-28 Rzeszów => WEBCON Developer <=
- 2025-03-28 Szczecin => Specjalista ds. public relations <=
- 2025-03-28 Warszawa => Staż w dziale Sprzedaży B2B <=
- 2025-03-28 Warszawa => MENA New Business Manager <=
- 2025-03-28 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-03-28 Białystok => Generative AI Engineer <=
- 2025-03-28 China-Kraków => Key Account Manager IT <=
- 2025-03-28 Warszawa => SQL Developer <=
- 2025-03-28 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-03-28 Gliwice => IT Expert (Network Systems area) <=
- 2025-03-28 Warszawa => International Freight Forwarder <=
- 2025-03-28 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-03-28 Częstochowa => Manager ds. produktu <=