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
ما میتوانیم برای یک ویژگی غیر قابل تنظیم `writable: true` را به `false` تغییر دهیم و به این ترتیب از تغییر مقدار آن جلوگیری کنیم (تا لایهای دیگر از حفاظت را اضافه کنیم). اما برعکس آن ممکن نیست.
273
273
```
274
274
275
-
## Object.defineProperties
275
+
## متد Object.defineProperties
276
276
277
-
There's a method [Object.defineProperties(obj, descriptors)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties)that allows to define many properties at once.
277
+
یک متد [Object.defineProperties(obj, descriptors)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties)وجود دارد که امکان توصیف چند ویژگی با هم را ایجاد میکند.
To get all property descriptors at once, we can use the method [Object.getOwnPropertyDescriptors(obj)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors).
303
+
برای گرفتن تمام توصیفکنندههای ویژگی با هم، میتوانیم از متد [Object.getOwnPropertyDescriptors(obj)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors) استفاده کنیم.
304
304
305
-
Together with `Object.defineProperties`it can be used as a "flags-aware" way of cloning an object:
305
+
این متد همراه با `Object.defineProperties`میتواند به عنوان راهی «آگاه از پرچمها» برای کپی کردن یک شیء استفاده شود:
306
306
307
307
```js
308
308
let clone =Object.defineProperties({}, Object.getOwnPropertyDescriptors(obj));
309
309
```
310
310
311
-
Normally when we clone an object, we use an assignment to copy properties, like this:
311
+
طبیعتا زمانی که ما یک شیء را کپی میکنیم، از عملگر مقداردهی برای کپی کردن ویژگیها استفاده میکنیم، مانند اینجا:
312
312
313
313
```js
314
314
for (let key in user) {
315
315
clone[key] = user[key]
316
316
}
317
317
```
318
318
319
-
...But that does not copy flags. So if we want a "better" clone then `Object.defineProperties`is preferred.
319
+
...اما این روش پرچمها را کپی نمیکند. پس اگر ما کپیبرداری «بهتری» بخواهیم `Object.defineProperties`ترجیح داده میشود.
320
320
321
-
Another difference is that `for..in`ignores symbolic properties, but `Object.getOwnPropertyDescriptors`returns *all* property descriptors including symbolic ones.
321
+
تفاوتی دیگر این است که `for..in`ویژگیهای سمبلی (symbolic) را نادیده میگیرد، اما `Object.getOwnPropertyDescriptors`*تمام* توصیفکنندههای ویژگیها را برمیگرداند که شامل ویژگیهای سمبلی هم میشود.
322
322
323
-
## Sealing an object globally
323
+
## مهر و موم کردن شیء به طور کلی
324
324
325
-
Property descriptors work at the level of individual properties.
325
+
توصیفکنندههای ویژگیها با ویژگیهای جداگانه کار میکنند.
326
326
327
-
There are also methods that limit access to the *whole* object:
327
+
متدهایی هم هستند که دسترسی به *کل* شیء را محدود میکنند:
0 commit comments