-
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
- 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-07-05 Shrek, wzrośnie cena prądu :-)
- 2025-07-05 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Konsultant wewnętrzny <=
- 2025-07-06 Płacić za wodę ze studni
- 2025-07-06 Kolejny inżynier...
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-04 od kiedy można obrażać Plastusia i do kiedy Batyra?
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-03 Trybik
- 2025-07-04 Renault Symbioz
- 2025-07-04 Architektura IIIRP: Wyjątkowa, a prymitywniejsza niż stodoła pod zaborami
- 2025-07-04 Warszawa => International Freight Forwarder <=
- 2025-07-04 Wrocław => SAP ABAP Developer <=
- 2025-07-04 Warszawa => Mid/Senior IT Recruiter <=