• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Promise - prywatne właściwości

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
250 wizyt
pytanie zadane 25 czerwca 2020 w JavaScript przez mb-dir Mądrala (6,710 p.)

Witam

Niedawno czytałem pewien artykuł odnośnie prywatnych właściwości/metod w JS'ie, z owego artykułu wynika, że takiego natywnego mechanizmu jeszcze nie ma(wg Can I use wsparcie dla # wynosi ~ 63%, więc nie jest to oszałamiający wynik). Oglądałem również film na temat obiektu Promise, padło tam jedno zdanie, które mnie zaciekawiło, mianowicie

Faktycznie jest to obiekt posiadający dwie prywatne właściwości

I tu moje pytanie, skąd wzięły się te prywatne właściwości obiektu Promise, jak to się  stało, że te właściwości są prywatne(wykorzystanie jednego z przykładów z artykułu?), i jak to działa, że dzięki then() możemy z nimi(tymi właściwościami) pracować?

1 odpowiedź

+5 głosów
odpowiedź 25 czerwca 2020 przez Comandeer Guru (607,060 p.)

Słowo "prywatne" jest tutaj użyte błędnie. To nie są prywatne, a wewnętrzne właściwości, tzw. internal slots. W skrócie: to są wartości, które definiuje specyfikacja ES i są wykorzystywane przez silnik JS, ale nie ma do nich bezpośredniego dostępu z poziomu JS-a.

Inna rzecz, że "prywatne" właściwości w JS-ie istniały od zarania dziejów, przy pomocy hacków.

4
komentarz 25 czerwca 2020 przez adrian17 Mentor (354,120 p.)

to są wartości, które definiuje specyfikacja ES i są wykorzystywane przez silnik JS,

Konkretniej: są tylko częścią specyfikacji, ale implementacja nie musi ich w ogóle mieć. Musi tylko się zachowywać, jakby je miała i na nich pracowała.

Dodam, że to jest tylko "kaprys"/"dobra wola" Chrome'a, że wyświetlają to w ten sposób.

Promise {<pending>}
  [[PromiseStatus]]: "pending"
  [[PromiseValue]]: undefined

Firefox na przykład pokaże:

Promise { "fulfilled" }
  <state>: "fulfilled"
  <value>: 1

 

Podobne pytania

+1 głos
2 odpowiedzi 1,121 wizyt
pytanie zadane 9 lipca 2020 w JavaScript przez Greeenone Pasjonat (16,100 p.)
0 głosów
1 odpowiedź 330 wizyt
pytanie zadane 6 czerwca 2020 w JavaScript przez lukas_1994 Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 931 wizyt
pytanie zadane 24 kwietnia 2020 w JavaScript przez maslokeeper01 Użytkownik (620 p.)

93,436 zapytań

142,431 odpowiedzi

322,667 komentarzy

62,801 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...