-
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
- 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) <=
- 2024-12-11 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-11 Idzie zima...czyli zaczynamy TETRIS :)
- 2024-12-11 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe