Skip to content

Commit 68ed640

Browse files
committed
Translate a part of article
Line 115, 127 and 139 need more attention.
1 parent 165c8cb commit 68ed640

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

1-js/09-classes/07-mixins/article.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -107,24 +107,24 @@ new User("Dude").sayHi(); // Hello Dude!
107107

108108
## EventMixin
109109

110-
Now let's make a mixin for real life.
110+
حالا بیایید یک mixin برای زندگی واقعی بسازیم.
111111

112-
An important feature of many browser objects (for instance) is that they can generate events. Events are a great way to "broadcast information" to anyone who wants it. So let's make a mixin that allows us to easily add event-related functions to any class/object.
112+
یک خاصیت مهم در تعداد زیادی از شیءهای مرورگر (برای مثال) این است که آن‌ها می‌توانند رویداد (event) ایجاد کنند. رویدادها راهی عالی برای «انتشار اطلاعات» به هر کسی که آن را بخواهد هستند. پس بیایید یک mixin بسازیم که به ما این امکان را می‌دهد تا به راحتی تابع‌های مربوط به رویداد را به هر شیء/کلاسی اضافه کنیم.
113113

114-
- The mixin will provide a method `.trigger(name, [...data])` to "generate an event" when something important happens to it. The `name` argument is a name of the event, optionally followed by additional arguments with event data.
115-
- Also the method `.on(name, handler)` that adds `handler` function as the listener to events with the given name. It will be called when an event with the given `name` triggers, and get the arguments from the `.trigger` call.
116-
- ...And the method `.off(name, handler)` that removes the `handler` listener.
114+
- این mixin متد `.trigger(name, [...data])` را برای «ایجاد یک رویداد» زمانی که اتفاقی برای آن می‌افتد فراهم می‌کند. آرگومان `name` اسم رویداد است که بعد از آن آرگومان‌های اضافی اختیاری شامل دادۀ رویداد می‌آید.
115+
- همچنین متد `.on(name, handler)` را فراهم می‌کند که تابع `handler` را به عنوان کنترل‌کننده به رویدادهایی با نام داده شده اضافه می‌کند. این تابع زمانی که رویدادی همراه با `name` داده شده راه می‌افتد (trigger) اجرا می‌شود و آرگومان‌ها را از فراخوانی `.trigger` دریافت می‌کند.
116+
- ...و متد `.off(name, handler)` را هم فراهم می‌کند که کنترل‌کننده `handler` را حذف می‌کند.
117117

118-
After adding the mixin, an object `user` will be able to generate an event `"login"` when the visitor logs in. And another object, say, `calendar` may want to listen for such events to load the calendar for the logged-in person.
118+
بعد از اضافه کردن `mixin`، یک شیء `user` خواهد توانست زمانی که بازدیدکننده وارد می‌شود (log in) یک رویداد `"login"` ایجاد کند. و شیء دیگر، مثلا `calendar` (تقویم) شاید بخواهد چنین رویدادهایی را کنترل کند تا تقویم را برای شخص وارد شده بارگیری کند.
119119

120-
Or, a `menu` can generate the event `"select"` when a menu item is selected, and other objects may assign handlers to react on that event. And so on.
120+
یا یک `menu` (فهرست) می‌تواند زمانی که چیزی از فهرست انتخاب شود رویداد `"select"` (انتخاب) را ایجاد کند و شیءهای دیگر ممکن است کنترل‌کننده‌هایی را برای واکنش دادن به این رویداد داشته باشند. و مثال‌هایی دیگر.
121121

122-
Here's the code:
122+
اینجا کد آن را داریم:
123123

124124
```js run
125125
let eventMixin = {
126126
/**
127-
* Subscribe to event, usage:
127+
* :متعهد ساختن به یک رویداد، کاربرد
128128
* menu.on('select', function(item) { ... }
129129
*/
130130
on(eventName, handler) {
@@ -136,7 +136,7 @@ let eventMixin = {
136136
},
137137

138138
/**
139-
* Cancel the subscription, usage:
139+
* :لغو کردن تعهد، کاربرد
140140
* menu.off('select', handler)
141141
*/
142142
off(eventName, handler) {
@@ -150,15 +150,15 @@ let eventMixin = {
150150
},
151151

152152
/**
153-
* Generate an event with the given name and data
153+
* ایجاد یک رویداد همراه با داده و نام داده شده
154154
* this.trigger('select', data1, data2);
155155
*/
156156
trigger(eventName, ...args) {
157157
if (!this._eventHandlers?.[eventName]) {
158-
return; // no handlers for that event name
158+
return; // کنترل‌کننده‌ای برای این نام رویداد وجود ندارد
159159
}
160160

161-
// call the handlers
161+
// فراخوانی کنترل‌کننده‌ها
162162
this._eventHandlers[eventName].forEach(handler => handler.apply(this, args));
163163
}
164164
};

0 commit comments

Comments
 (0)