Czy w javascript i typescript są pola czy właściwości ?

0

Czy w języku javascript i typescript są pola i właściwości czy tylko właściwości ?

np.:

 name:string;

to będzie pole czy właściwość w typescript ?

0

Właściwości z JS przypominają pola z Javy, z kolei pól jako takich nie ma w ogóle. W kontekście JS właściwością nazywa się powiązanie nazwy i wartości, która jest częścią obiektu.

0

wczoraj odpowiadałem na identyczne pytanie już, więc wnioskuję, że to pytanie-dubel.

EDIT:
https://4programmers.net/Forum/Webmastering/291673-co_znajduje_sie_w_dekoratorze_atcomponent_wlasciwosci_czy_pola?p=1372595#id1372595

0

Niom, w js ok są tylko właściwości, a w type script ? Bo w typescript można określić modyfikator dostępu dla pola/właściwości.

0

Spróbuj zejść poziom niżej z tym swoim pytaniem, bo na razie jest to ślizganie się po słowach.
Co próbujesz osiągnąć dokładnie? Albo co masz na myśli pytając o pola czy właściwości? Kwestia nazewnictwa w JS może się trochę różnić od nazewnictwa w innych językach, więc nie ma sensu przywiązywać się do konkretnego słowa, bez ustalenia co to słowo oznacza dokładnie, i jak to się przekłada na JS.

przypuszczam, że w TS będzie podobnie, TS nie znosi reguł obowiązujących w JavaScripcie.

1
Nadziany Ogórek napisał(a):

Niom, w js ok są tylko właściwości, a w type script ? Bo w typescript można określić modyfikator dostępu dla pola/właściwości.

W językach obiektowych właściwością (property) nazywa się charakterystykę obiektu, która jest możliwa do ustawienia z zewnątrz. Z kolei polem field nazywa się każdy data member obiektu (często wyklucza się z tego grona właściwości i pisze, że pole jest private i nie jest możliwe do modyfikacji z zewnątrz). Wiemy to wszystko dzięki naukowcom z MIT, którzy na przełomie lat 50-60 ubiegłego wieku użyli po raz pierwszy terminów "object" i "property" oraz wytłumaczyli co one znaczą.

W JS zazwyczaj używa się określenia property. Z kolei w dokumentacji TS pojawia się terminy member oraz property , ale nie używa się terminu field w ogóle. Dlaczego? Ciężko mi powiedzieć. Z naukowego punktu widzenia modyfikatory dostępu z TS sprawiają, że nie wszystkie data member są property, ale autorzy tego języka postanowili po prostu pisać private member zamiast field.

0

dzięki za to wiadomość.

0

W JS zazwyczaj używa się określenia property.

Nie tylko zazwyczaj, ale oficjalnie w języku jest coś takiego. Np. mamy metodę Object.defineProperty dlatego uważam, że tego należy się trzymać pisząc w JS (albo w TS, to to samo). Z kolei w Pythonie mają zamiast właściwości to "atrybuty"(attributes) więc pisząc w Pythonie byśmy używali określenia atrybuty, w JS natomiast istnieją atrybuty, ale znaczą co innego.

Co ciekawe jest propozycja, żeby wprowadzić prywatne pola do JS (zwane właśnie private fields):
https://github.com/tc39/proposal-private-fields

w każdym razie lepiej patrzeć na to, jakie coś ma konkretne cechy, co można z tym zrobić, bo kwestia nazewnictwa może być dość względna, zależna od języka, przyjętej konwencji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1