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/99-js-misc/04-reference-type/article.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,3 @@
1
-
2
1
# Reference Type
3
2
4
3
```warn header="ویژگی یک زبان عمیق"
@@ -18,9 +17,9 @@ let user = {
18
17
bye() { alert("Bye"); }
19
18
};
20
19
21
-
user.hi(); //کار میکند!
20
+
user.hi(); //works
22
21
23
-
//now let's call user.hi or user.bye depending on the name
22
+
//اجرا شود user.by و درغیراینصورت user.hi بود متد john حال بررسی میکنیم اگر نام برابر
24
23
*!*
25
24
(user.name=="John"?user.hi:user.bye)(); // Error!
26
25
*/!*
@@ -34,9 +33,10 @@ user.hi(); // کار میکند!
34
33
```js
35
34
user.hi();
36
35
```
37
-
اما این کد اصلا! (فانکشن بدون پرانتز)
36
+
37
+
اما این کد اصلا کار نمیکند! (فانکشن بدون پرانتز)
38
38
```js
39
-
(user.name=="John"?user.hi:user.bye)(); //خطا!
39
+
(user.name=="John"?user.hi:user.bye)(); //Error!
40
40
```
41
41
42
42
چرا؟ اگر متوجه شدید که تا اینجا چه اتفاقی افتاده, بیایید به عملکرد `()obj.method` بپردازیم.
@@ -72,6 +72,7 @@ hi(); // است undefiend برابر با this خطا! چون مقدار
72
72
ریفرنس تایپ ها یا نوع ارجاعی "نوع خاصی از داده ها یا specification type" هستند. ما نمیتوانیم به صورت مستقیم از آن استفاده کنیم ولی به صورت داخلی داخل زبان تعبیه شده و استفاده میشود.
73
73
74
74
این نوع داده خاص شامل سه مقدار `(base, name, strict)` هست که:
75
+
75
76
-`base` یک آبجکت است
76
77
-`name` نام ویژگی آبجکت هست
77
78
- اگر `use strict` تعبیه شده باشد مقدار `strict` نیز true است.
@@ -82,6 +83,7 @@ hi(); // است undefiend برابر با this خطا! چون مقدار
82
83
// مقدار Reference Type
83
84
(user, "hi", true)
84
85
```
86
+
85
87
وقتی که پرانتزی در Reference type ها صدا زده میشود, همه اطلاعات مربوط به اشیاء و متد فعلی را دریافت میکند و به درستی کلمه کلیدی `this` را مقداردهی میکند.
86
88
87
89
نوع Reference type یک نوع داده داخلی "واسط" با هدف انتقال اطلاعات مربوطه از عملگر نقطه `.` به پرانتز است.
0 commit comments