1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
---
title: 'TypeError: property "x" is non-configurable and can''t be deleted'
slug: Web/JavaScript/Reference/Errors/Cant_delete
tags:
- JavaScript
- TypeError
- Строгий режим
- помилка
translation_of: Web/JavaScript/Reference/Errors/Cant_delete
---
<div>{{jsSidebar("Errors")}}</div>
<h2 id="Повідомлення">Повідомлення</h2>
<pre class="syntaxbox">TypeError: Calling delete on 'x' is not allowed in strict mode (Edge)
TypeError: property "x" is non-configurable and can't be deleted. (Firefox)
TypeError: Cannot delete property 'x' of #<Object> (Chrome)
</pre>
<h2 id="Тип_помилки">Тип помилки</h2>
<p>{{jsxref("TypeError")}} тільки у строгому режимі.</p>
<h2 id="Що_сталось">Що сталось?</h2>
<p>Була спроба видалити властивість, але ця властивість <a href="/uk/docs/Web/JavaScript/Data_structures#Properties">недоступна для налаштування</a>. Атрибут <code>configurable</code> котролює, чи властивість об'єкта може бути видалена, та чи можна змінювати її атрибути (інші, крім <code>writable</code>).</p>
<p>Ця помилка виникає лише у <a href="/uk/docs/Web/JavaScript/Reference/Strict_mode">строгому режимі</a>. У нестрогому режимі оператор повертає <code>false</code>.</p>
<h2 id="Приклади">Приклади</h2>
<p>Властивості, недоступні для налаштування, не є дуже поширеними, але їх можна створити за допомогою {{jsxref("Object.defineProperty()")}} або {{jsxref("Object.freeze()")}}.</p>
<pre class="brush: js example-bad">'use strict';
var obj = Object.freeze({name: 'Elsa', score: 157});
delete obj.score; // TypeError
'use strict';
var obj = {};
Object.defineProperty(obj, 'foo', {value: 2, configurable: false});
delete obj.foo; // TypeError
'use strict';
var frozenArray = Object.freeze([0, 1, 2]);
frozenArray.pop(); // TypeError
</pre>
<p>Існують також кілька недоступних для налаштування властивостей, вбудованих у JavaScript. Можливо, ви намагались видалити математичну константу.</p>
<pre class="brush: js example-bad">'use strict';
delete Math.PI; // TypeError</pre>
<h2 id="Див._також">Див. також</h2>
<ul>
<li><a href="/uk/docs/Web/JavaScript/Reference/Operators/delete">Оператор delete</a></li>
<li>{{jsxref("Object.defineProperty()")}}</li>
<li>{{jsxref("Object.freeze()")}}</li>
</ul>
|