Skip to content

Commit 1757c30

Browse files
committed
Fix all conflicts
1 parent 250f58e commit 1757c30

12 files changed

Lines changed: 91 additions & 339 deletions

File tree

1-js/02-first-steps/07-type-conversions/article.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,6 @@
66

77
همینطور شرایطی وجود دارد که ما نیاز داریم مقدار را به نوع مورد نظرمان تبدیل کنیم.
88

9-
<<<<<<< HEAD
10-
=======
11-
```smart header="Not talking about objects yet"
12-
In this chapter, we won't cover objects. For now, we'll just be talking about primitives.
13-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
149

1510
```smart header="هنوز در مورد object ها صحبت نکرده‌ایم"
1611
در این بخش در مورد object ها صحبت نمی‌کنیم. فعلا فقط درباره انواع اولیه صحبت می‌کنیم.

1-js/04-object-basics/03-garbage-collection/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616

1717
- تابعی که در حال اجرا باشد، متغیرهای محلی و پارامترهای آن.
1818
- تابع‌های دیگر در زنجیره‌ی کنونیِ صدازدن های تو در تو، متغیرهای محلی و پارامترهای آن.
19-
- متغیرهای global.
19+
- متغیرهای گلوبال.
2020
- (چند مورد دیگر هم هستند، همچنین موردهای داخلی)
2121

2222
این مقدارها *ریشه‌ها* نامیده می‌شوند.
2323

2424
2. هر مقدار دیگری قابل دسترس فرض می‌شود اگر از یک ریشه توسط یک مرجع یا زنجیره‎ای از مراجع قابل دسترس باشد.
2525

26-
برای مثال، اگر یک شیء در متغیری global وجود داشته باشد، و آن شیء یک ویژگی داشته باشد که به شیءای دیگر رجوع می‌کند، *آن* شیء قابل دسترس فرض می‌شود. و آنهایی که این شیء به آنها رجوع می‌کند هم قابل دسترس هستند. مثال‌های دارای جزئیات در ادامه آمده است.
26+
برای مثال، اگر یک شیء در متغیری گلوبال وجود داشته باشد، و آن شیء یک ویژگی داشته باشد که به شیءای دیگر رجوع می‌کند، *آن* شیء قابل دسترس فرض می‌شود. و آنهایی که این شیء به آنها رجوع می‌کند هم قابل دسترس هستند. مثال‌های دارای جزئیات در ادامه آمده است.
2727

2828
یک فرایند پشت پرده در موتور جاوااسکریپت وجود دارد به نام [زباله‌روبی](https://fa.wikipedia.org/wiki/بازیافت_حافظه). این فرایند تمام شیءها را زیر نظر می‌گیرد و آنهایی که غیر قابل دسترس شده‌اند را پاک می‌کند.
2929

@@ -40,7 +40,7 @@ let user = {
4040

4141
![](memory-user-john.svg)
4242

43-
اینجا، کمان یک مرجع شیء را نشان می‌دهد. متغیر global `"user"` به شیء `{name: "John"}` رجوع می‌کند (برای اختصار به آن John می‌گوییم). ویژگی `"name"` از John یک مقدار اصلی را ذخیره می‌کند، پس درون آن نقش بسته است.
43+
اینجا، کمان یک مرجع شیء را نشان می‌دهد. متغیر گلوبال `"user"` به شیء `{name: "John"}` رجوع می‌کند (برای اختصار به آن John می‌گوییم). ویژگی `"name"` از John یک مقدار اصلی را ذخیره می‌کند، پس درون آن نقش بسته است.
4444

4545
اگر مقدار `user` بازنویسی شود، مرجع از دست می‌رود:
4646

1-js/09-classes/02-class-inheritance/article.md

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,7 @@ class Rabbit extends Animal {
106106
}
107107
```
108108
109-
<<<<<<< HEAD
110109
معمولا ما نمی‌خواهیم که یک متد والد را به طور کلی جایگزین کنیم بلکه می‌خواهیم متدی بر اساس آن بسازیم تا عملکرد آن را تغییر یا گسترش بدهیم. ما کاری را درون متد خود انجام می‌دهیم اما متد والد را قبل/بعد از آن یا در حین فرایند فراخوانی می‌کنیم.
111-
=======
112-
Usually, however, we don't want to totally replace a parent method, but rather to build on top of it to tweak or extend its functionality. We do something in our method, but call the parent method before/after it or in the process.
113-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
114110
115111
کلاس‌ها کلمه کلیدی `"super"` را برای این موضوع فراهم می‌کنند.
116112
@@ -163,12 +159,7 @@ rabbit.stop(); // !خرگوش سفید ایستاده است. خرگوش سفی
163159
````smart header="تابع‌های کمانی `super` ندارند"
164160
همانطور که در فصل <info:arrow-functions> گفته شد، تابع‌های کمانی `super` ندارند.
165161
166-
<<<<<<< HEAD
167162
اگر به آن دسترسی پیدا کنیم، از تابع بیرونی گرفته می‌شود. برای مثال:
168-
=======
169-
If accessed, it's taken from the outer function. For instance:
170-
171-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
172163
```js
173164
class Rabbit extends Animal {
174165
stop() {
@@ -185,12 +176,7 @@ setTimeout(function() { super.stop() }, 1000);
185176
```
186177
````
187178

188-
<<<<<<< HEAD
189-
190179
## بازنویسی سازنده
191-
=======
192-
## Overriding constructor
193-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
194180

195181
با سازنده‌ها این کار کمی پیچیده می‌شود.
196182

@@ -293,13 +279,7 @@ alert(rabbit.earLength); // 10
293279
*/!*
294280
```
295281

296-
<<<<<<< HEAD
297-
298-
299282
### بازنویسی فیلدهای کلاس: نکته‌ای فریبنده
300-
=======
301-
### Overriding class fields: a tricky note
302-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
303283

304284
```warn header="نکته پیشرفته"
305285
این نکته فرض می‌کند شما درباره کلاس‌ها مقداری تجربه دارید، شاید در زبان‌های برنامه‌نویسی دیگر.
@@ -387,22 +367,13 @@ new Rabbit(); // rabbit
387367

388368
پس `new Rabbit()` تابع `super()` را فراخوانی می‌کند، به همین ترتیب سازنده والد را اجرا می‌کند و (بنا به دلیل موجود برای کلاس‌های مشتق شده) فقط بعد از آن فیلدهای کلاس خودش مقداردهی اولیه می‌شوند. در زمان اجرای سازنده والد، فیلدهای کلاس `Rabbit` هنوز وجود ندارند، به همین دلیل فیلدهای `Animal` استفاده می‌شوند.
389369

390-
<<<<<<< HEAD
391370
این تفاوت جزئی بین فیلدها و متدها مختص به جاوااسکریپت است.
392-
=======
393-
This subtle difference between fields and methods is specific to JavaScript.
394-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
395371

396372
خوشبختانه این موضوع فقط زمانی خودش را نشان می‌دهد که یک فیلد بازنویسی شده درون سازنده والد استفاده شده باشد. سپس ممکن است فهمیدن اینکه چه چیزی در حال رخ دادن است دشوار باشد، به همین دلیل اینجا آن را توضیح دادیم.
397373

398374
اگر این مشکلی ایجاد کند، می‌توانید با استفاده از متدها یا getter/setterها به جای فیلدها آن را برطرف کنید.
399375

400-
<<<<<<< HEAD
401-
402376
## تابع Super: از درون، [[HomeObject]]
403-
=======
404-
## Super: internals, [[HomeObject]]
405-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
406377

407378
```warn header="اطلاعات اضافی"
408379
اگر اولین بار است که این آموزش را می‌گذرانید - این بخش می‌توانید از قلم بیاندازید.

1-js/09-classes/03-static-properties-methods/3-class-extend-object/solution.md

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,14 @@ alert( rabbit.hasOwnProperty('name') ); // true
2121

2222
اما این هنوز تمام ماجرا نیست.
2323

24-
<<<<<<< HEAD
2524
حتی بعد از رفع این مشکل، هنوز هم یک تفاوت اساسی بین `"class Rabbit extends Object"` و `class Rabbit` وجود دارد.
26-
=======
27-
Even after the fix, there's still an important difference between `"class Rabbit extends Object"` and `class Rabbit`.
28-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
2925

3026
همانطور که می‌دانیم، سینتکس "extends" دو پروتوتایپ را تنظیم می‌کند:
3127

3228
1. بین `"prototype"` سازنده تابع‌ها (برای متدها).
3329
2. بین خود سازنده تابع‌ها (برای متدهای ایستا).
3430

35-
<<<<<<< HEAD
36-
در این مورد ما، برای `class Rabbit extends Object` داریم:
37-
=======
38-
In the case of `class Rabbit extends Object` it means:
39-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
31+
در مورد `class Rabbit extends Object` یعنی:
4032

4133
```js run
4234
class Rabbit extends Object {}
@@ -45,11 +37,7 @@ alert( Rabbit.prototype.__proto__ === Object.prototype ); // (1) true
4537
alert( Rabbit.__proto__ === Object ); // (2) true
4638
```
4739

48-
<<<<<<< HEAD
4940
پس حالا `Rabbit` به دسترسی متدهای ایستای `Object` از طریق `Rabbit` را فراهم می‌کند، مثلا اینگونه:
50-
=======
51-
So `Rabbit` now provides access to the static methods of `Object` via `Rabbit`, like this:
52-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
5341

5442
```js run
5543
class Rabbit extends Object {}
@@ -79,11 +67,7 @@ alert ( Rabbit.getOwnPropertyNames({a: 1, b: 2})); // ارور
7967

8068
پس در این صورت `Rabbit` دسترسی به متدهای ایستای `Object` را فراهم نمی‌کند.
8169

82-
<<<<<<< HEAD
83-
راستی، `Function.prototype` دارای متدهای «عمومی» تابع است، مثل `call`، `bind` و غیره. آن‌ها در هر دو مورد سرانجام در دسترس هستند چون سازنده درون‌ساخت `Object`، `Object.__proto__ === Function.prototype` را دارد.
84-
=======
85-
By the way, `Function.prototype` also has "generic" function methods, like `call`, `bind` etc. They are ultimately available in both cases, because for the built-in `Object` constructor, `Object.__proto__ === Function.prototype`.
86-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
70+
راستی، `Function.prototype` دارای متدهای «عمومی» تابع است، مثل `call`، `bind` و غیره. آن‌ها سرانجام در هر دو مورد در دسترس هستند چون سازنده درون‌ساخت `Object`، `Object.__proto__ === Function.prototype` را دارد.
8771

8872
اینجا تصویر آن را داریم:
8973

1-js/09-classes/03-static-properties-methods/article.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,22 +109,18 @@ alert( article.title ); // خلاصه‌ی امروز
109109
Article.remove({id: 12345});
110110
```
111111

112-
<<<<<<< HEAD
113-
## ویژگی‌های ایستا
114-
=======
115-
````warn header="Static methods aren't available for individual objects"
116-
Static methods are callable on classes, not on individual objects.
112+
````warn header="متدهای ایستا برای شیءها قابل دسترس نیستند"
113+
متدهای ایستا بر روی کلاس‌های قابل فراخوانی هستند نه بر روی شیءها.
117114
118-
E.g. such code won't work:
115+
برای مثال، چنین کدی کار نخواهد کرد:
119116
120117
```js
121118
// ...
122119
article.createTodays(); /// Error: article.createTodays is not a function
123120
```
124121
````
125122

126-
## Static properties
127-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
123+
## ویژگی‌های ایستا
128124

129125
[recent browser=Chrome]
130126

0 commit comments

Comments
 (0)