You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/04-object-methods/article.md
+18-17Lines changed: 18 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,7 +61,7 @@ user.sayHi(); // Cześć!
61
61
```
62
62
63
63
```smart header="Object-oriented programming"
64
-
Kiedy piszemy kod wykorzystujący obiekty do reprezentowania podmiotów, nazywamy to[programowaniem obiektowym](https://pl.wikipedia.org/wiki/Programowanie_obiektowe), w skrócie:
64
+
Kiedy piszemy kod wykorzystujący obiekty do reprezentowania podmiotów, nazywamy to[programowaniem obiektowym](https://pl.wikipedia.org/wiki/Programowanie_obiektowe), w skrócie:
65
65
"OOP".
66
66
67
67
OOP to bardzo rozległy i interesujący temat. Jak wybrać właściwe podmioty? Jak stworzyć zależności między nimi? Jest to cała architektura i istnieje wiele świetnych książek traktujących ten temat, jak np. "Wzorce projektowe. Elementy oprogramowania" autorstwa E.Gamma, R.Helm, R.Johnson, J.Vissides, lub "Object-Oriented Analysis and Design with Applications" G.Booch, i wiele innych
@@ -126,7 +126,7 @@ Podczas wykonania `user.sayHi()`, wartością `this` będzie `user`.
126
126
127
127
Możliwe jest również uzyskanie dostępu do obiektu bez używania `this`, przez odwołąnie się do niego przez zmienną z zewnątrz:
128
128
129
-
```js
129
+
```js run
130
130
let user = {
131
131
name:"John",
132
132
age:30,
@@ -161,7 +161,7 @@ let user = {
161
161
let admin = user;
162
162
user =null; // dla pewności nadpisujemy zmienną
163
163
164
-
admin.sayHi(); // Ups! wewnątrz sayHi(), wykorzystywana jest zła zmienna! błąd!
164
+
admin.sayHi(); // Ups! wewnątrz sayHi(), wykorzystywana jest zła zmienna! Błąd!
165
165
```
166
166
167
167
Jeśli użylibyśmy `this.name` zamiast `user.name` wewnątrz `alert`, wtedy kod by zadziałał.
@@ -206,7 +206,8 @@ admin['f'](); // Admin (kropka lub nawiasy kwadratowe udzielają dostępu do met
206
206
207
207
Zasada jest prosta: jeśli `obj.f()` jest wywołana, to `this` jest `obj` podczas wywoływania `f`. Więc w powyższym przykładzie jest to zarówno `user` lub `admin`.
208
208
209
-
````smart header="Calling without an object: `this == undefined`"
209
+
210
+
````smart header="Calling without an object: `this` == undefined"
210
211
Możemy wywołać tę funkcję nawet bez obiektu:
211
212
212
213
```js run
@@ -328,11 +329,11 @@ Każda inna operacja, jak przypisanie `hi = user.hi` odrzuca całkowicie Typ Ref
328
329
329
330
Podsumowując, wartość `this` jest przekazywane we właściwy sposób jeśli funkcja jest wywoływana za pomocą kropki `obj.method()` lub nawiasów kwadratowych `obj[`method`]()` (obie składnie zadziałają tutaj identycznie). W dalszej części kursu, nauczymy się różnych możliwości aby rozwiązać ten problem, takich jak [func.bind()](/bind#solution-2-bind).
330
331
331
-
## Arrow functions have no "this"
332
+
## Funkcje strzałkowe nie mają "this"
332
333
333
-
Arrow functions are special: they don't have their "own" `this`. If we reference `this` from such a function, it's taken from the outer "normal" function.
334
+
Funkcje strzałkowe są specjalnym typem funkcji: nie posiadają "własnego" `this`. Jeśli odnosimy się do `this` w takiej funkcji, jego wartość jest pobierana z zewnętrznej "normalnej" funkcji.
334
335
335
-
For instance, here `arrow()` uses `this` from the outer `user.sayHi()` method:
336
+
W poniższym przykładzie `arrow()` używa `this` z zewnętrznej metody `user.sayHi()`:
336
337
337
338
```js run
338
339
let user = {
@@ -346,18 +347,18 @@ let user = {
346
347
user.sayHi(); // Ilya
347
348
```
348
349
349
-
That's a special feature of arrow functions, it's useful when we actually do not want to have a separate `this`, but rather to take it from the outer context. Later in the chapter <info:arrow-functions> we'll go more deeply into arrow functions.
350
+
Jest to specjalna właściwość funkcji strzalkowych, są użyteczne gdy nie chcemy mieć osobnego `this`, tylko wolimy je pobrać z zewnątrz. W późniejszym rozdziale <info:arrow-functions> zagłębimy się bardziej w to czym są funkcje strzałkowe.
350
351
351
352
352
-
## Summary
353
+
## Podsumowanie
353
354
354
-
- Functions that are stored in object properties are called "methods".
355
-
- Methods allow objects to "act" like `object.doSomething()`.
356
-
- Methods can reference the object as `this`.
355
+
- Funkcje które są przechowywane w obiekcie nazywamy "metodami".
356
+
- Metody pozwalają obiektom "zachowywać się" w sposób `object.zróbCoś()`
357
+
- Metody mają referencje do swojego obiektu, jest to wartość ich `this`
357
358
358
-
The value of `this` is defined at run-time.
359
-
- When a function is declared, it may use `this`, but that `this` has no value until the function is called.
360
-
- A function can be copied between objects.
361
-
- When a function is called in the "method" syntax: `object.method()`, the value of `this` during the call is `object`.
359
+
Wartość `this` jest określana podczas wykonhwania kodu.
360
+
- Kiedy funkcja jest deklarowana, może ona użyć `this`, z tym że nie będzie ono miało wartości tak długo aż funkcja zostanie wywyłana.
361
+
- Jedna funkcja może być użwana jako metoda przez kilka obiektów.
362
+
- Kiedy funkcja jest wykonywana za pomocą składni: `object.method()`, `this` podczas wykonywania przybierze wartość `object`.
362
363
363
-
Please note that arrow functions are special: they have no `this`. When `this` is accessed inside an arrow function, it is taken from outside.
364
+
Zapamiętaj że funkcje strzałkowe są specjalnym typem funkcji: nie posiadają `this`. Kiedy chcemy uzyskać dostęp do `this` wewnątrz funkcji strzałkowej, wartość jest brana z zewnątrz.
0 commit comments