ÐÑклÑÑение "can't redefine non-configurable property" возникаеÑ, когда в коде пеÑеопÑеделÑеÑÑÑ Ð½ÐµÐ½Ð°ÑÑÑаиваемое ÑвойÑÑво.
СообÑениÑTypeError: Cannot redefine property: "x" (V8-based) TypeError: can't redefine non-configurable property "x" (Firefox) TypeError: Attempting to change value of a readonly property. (Safari)Тип оÑибки ЧÑо не Ñак?
ÐÑла пÑедпÑинÑÑа попÑÑка пеÑеопÑеделиÑÑ ÑвойÑÑво, но ÑÑо ÑвойÑÑво не наÑÑÑаиваеÑÑÑ. ÐÑÑибÑÑ "наÑÑÑаиваемоÑÑи" опÑеделÑеÑ, можно ли ÑдалиÑÑ ÑвойÑÑво из обÑекÑа и можно ли измениÑÑ Ð´ÑÑгие его аÑÑибÑÑÑ (оÑлиÑнÑе Ð¾Ñ Ð´Ð¾ÑÑÑпнÑÑ
Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи). ÐбÑÑно, ÑвойÑÑва обÑекÑа, Ñозданного иниÑиализаÑоÑом обÑекÑа, наÑÑÑаиваÑÑÑÑ. Ðднако, напÑимеÑ, пÑи иÑполÑзовании Object.defineProperty()
, заданное ÑвойÑÑво по ÑмолÑÐ°Ð½Ð¸Ñ Ð½ÐµÐ½Ð°ÑÑÑаиваемое.
Object.defineProperty
The Object.defineProperty()
ÑоздаÑÑ Ð½ÐµÐ½Ð°ÑÑÑаиваемÑе ÑвойÑÑва, еÑли они не помеÑÐµÐ½Ñ ÐºÐ°Ðº наÑÑÑаиваемÑе.
const obj = Object.create({});
Object.defineProperty(obj, "foo", { value: "bar" });
Object.defineProperty(obj, "foo", { value: "baz" });
// TypeError: can't redefine non-configurable property "foo"
Ðам нÑжно бÑÐ´ÐµÑ Ð¿Ð¾Ð¼ÐµÑиÑÑ ÑвойÑÑво "foo" как наÑÑÑаиваемое (configurable: true
), еÑли Ð²Ñ ÑобиÑаеÑеÑÑ Ð¿ÐµÑеопÑеделиÑÑ ÐµÐ³Ð¾ позже в коде.
const obj = Object.create({});
Object.defineProperty(obj, "foo", { value: "bar", configurable: true });
Object.defineProperty(obj, "foo", { value: "baz", configurable: true });
СмоÑÑиÑе Ñакже
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