TypeError: не ÑдаÑÑÑÑ ÑдалиÑÑ Ð½Ðµ наÑÑÑаиваемÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива (Firefox) TypeError: не ÑдаÑÑÑÑ ÑдалиÑÑ ÑвойÑÑво '2' из [маÑÑива обÑекÑов] (Chrome)Тип оÑибки ЧÑо поÑло не Ñак?
ÐÑла Ñделана попÑÑка ÑокÑаÑиÑÑ Ð´Ð»Ð¸Ð½Ñ Ð¼Ð°ÑÑива, но один из ÑлеменÑов маÑÑива не изменÑеÑÑÑ. ÐÑи ÑкоÑоÑении маÑÑив, ÑлеменÑÑ Ð·Ð° новÑÑ Ð´Ð»Ð¸Ð½Ñ Ð¼Ð°ÑÑива бÑдÑÑ ÑдаленÑ, не в ÑÑой ÑиÑÑаÑии.
ÐаÑÑÑаиваемÑй аÑÑибÑÑ Ð¾Ð¿ÑеделÑеÑ, можно ли ÑдалиÑÑ ÑвойÑÑво из обÑекÑа и можно ли измениÑÑ ÐµÐ³Ð¾ аÑÑибÑÑÑ (оÑлиÑнÑе Ð¾Ñ Ð´Ð¾ÑÑÑпнÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи).
ÐбÑÑно ÑвойÑÑва обÑекÑа, Ñозданного иниÑиализаÑоÑом маÑÑива, наÑÑÑаиваÑÑÑÑ. Ðднако, напÑимеÑ, пÑи иÑполÑзовании Object.defineProperty()
, ÑвойÑÑво не наÑÑÑаиваеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ.
Object.defineProperty
The Object.defineProperty()
ÑоздаÑÑ Ð½Ðµ наÑÑÑаиваемÑе ÑвойÑÑва по ÑмолÑаниÑ, еÑли они не ÑÐºÐ°Ð·Ð°Ð½Ñ ÐºÐ°Ðº наÑÑÑаиваемÑе.
var arr = [];
Object.defineProperty(arr, 0, { value: 0 });
Object.defineProperty(arr, 1, { value: "1" });
arr.length = 1;
// TypeError: не ÑдаÑÑÑÑ ÑдалиÑÑ Ð½Ðµ наÑÑÑаиваемÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива
Ðам нÑжно бÑÐ´ÐµÑ ÑÑÑановиÑÑ ÑлеменÑÑ ÐºÐ°Ðº конÑигÑÑиÑÑемÑе, еÑли Ð²Ñ ÑобиÑаеÑеÑÑ ÑокÑаÑиÑÑ Ð¼Ð°ÑÑив.
var arr = [];
Object.defineProperty(arr, 0, { value: 0, configurable: true });
Object.defineProperty(arr, 1, { value: "1", configurable: true });
arr.length = 1;
Seal
-ed Arrays (ÐеÑмеÑиÑнÑе ÐаÑÑивÑ)
The Object.seal()
ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð¼ÐµÑÐ°ÐµÑ Ð²Ñе ÑÑÑеÑÑвÑÑÑие ÑлеменÑÑ ÐºÐ°Ðº не наÑÑÑаиваемÑе.
var arr = [1, 2, 3];
Object.seal(arr);
arr.length = 1;
// TypeError: can't delete non-configurable array element
Ðам или нÑжно извлеÑÑ Object.seal()
позвониÑе или ÑделайÑе копиÑ. Ð ÑлÑÑае копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑокÑаÑение копии маÑÑива не изменÑÐµÑ Ð´Ð»Ð¸Ð½Ñ Ð¸ÑÑ
одного маÑÑива.
var arr = [1, 2, 3];
Object.seal(arr);
// СкопиÑÑйÑе иÑÑ
однÑй маÑÑив, ÑÑÐ¾Ð±Ñ ÑокÑаÑиÑÑ ÐºÐ¾Ð¿Ð¸Ñ
var copy = Array.from(arr);
copy.length = 1;
// arr.length == 3
СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4