A blogmark arról szól, hogyan használd a hatókör szabályokat és egy új kollekciót arra, hogy az interfészeden ne jelenjenek meg implementációs részletek. Hol látsz itt biztonsági kérdést?
We use CodeMirror as the underlying implementation for our editor, but do not want to expose it directly to consumers of the editor API. Not exposing CodeMirror allows us to upgrade it when there are backwards incompatible releases or even replace CodeMirror with a different editor without the fear of breaking third party addons that have come to depend on older CodeMirror versions.
JS-ben bevett szokás a privát függvényeket, adattagokat _-vel ellátni. Ezek csak konvenció szintjén számítanak privátnak, hiszen bárki elérheti.
A privát nem azt jelenti, hogy "titkos". Pusztán azt, hogy az nem tartozik a publikus dolgok közé, bármikor megváltozhat a viselkedése, felépítése.
Ha viszont a privát adatok nehezen érhetőek el (pl a cikkben említett WeakMap segítségével), akkor egy implementáció sem fog/tud a belső működésre (_-vel kezdődő függvények, adattagok) hagyatkozni, csak a publikus függvényekre (~interfész). Ha egy komponens egy interfészen keresztül kommunikál, az sokkal rugalmasabb, mintha a konkrét implementáció belső metódusait közvetlenül hívogatná.
Az adatrejtés a hülye programozók ellen véd, hiszen kikényszeríti a publikus metódusok használatát.
Nem is tudtam, hogy JS-t
Lehet nekem kerülte el a
Rejtés
Több alkalommal is
De akkor miért kell belőle
Ki és hogyan csinál belőle
Például a blogmark is erről
A blogmark arról szól, hogyan
Mit ír, miért ne jelenjenek
We use CodeMirror as the
Lehet, hogy én értem félre,
JS-ben bevett szokás a privát
A privát nem azt jelenti, hogy "titkos". Pusztán azt, hogy az nem tartozik a publikus dolgok közé, bármikor megváltozhat a viselkedése, felépítése.
Ha viszont a privát adatok nehezen érhetőek el (pl a cikkben említett WeakMap segítségével), akkor egy implementáció sem fog/tud a belső működésre (_-vel kezdődő függvények, adattagok) hagyatkozni, csak a publikus függvényekre (~interfész). Ha egy komponens egy interfészen keresztül kommunikál, az sokkal rugalmasabb, mintha a konkrét implementáció belső metódusait közvetlenül hívogatná.
Az adatrejtés a hülye programozók ellen véd, hiszen kikényszeríti a publikus metódusok használatát.
Attól, hogy a fordító