A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Errors/Read-only below:

TypeError: "x" is read-only(Ошибка Типа: "x" только для чтения) - JavaScript

TypeError: "x" is read-only(Ошибка Типа: "x" только для чтения) Сообщения
TypeError: назначение свойств только для чтения не допускается в строгом режиме (Edge)
TypeError: "x" доступен только для чтения (Firefox)
TypeError: 0 доступен только для чтения (Firefox)
TypeError: не удаётся назначить только для чтения свойство "x" из #<объект> (Chrome)
TypeError: не удаётся назначить только для чтения свойство '0' [массив объектов] (Chrome)
Тип ошибки Что пошло не так?

Назначенное свойство глобальной переменной или объекта является свойством только для чтения. (Технически это свойство данных, недоступное для записи.)

Эта ошибка возникает только в коде строгого режима. В нестрогом коде назначение игнорируется.

Примеры недействительные кейсы

Свойства только для чтения не очень распространены, но их можно создать с помощью Object.defineProperty() или Object.freeze().

"use strict";
var obj = Object.freeze({ name: "Elsa", score: 157 });
obj.score = 0; // TypeError

("use strict");
Object.defineProperty(this, "LUNG_COUNT", { value: 2, writable: false });
LUNG_COUNT = 3; // TypeError

("use strict");
var frozenArray = Object.freeze([0, 1, 2]);
frozenArray[0]++; // TypeError

В JavaScript также встроено несколько свойств, доступных только для чтения. Возможно, вы пытались переопределить математическую константу.

"use strict";
Math.PI = 4; // TypeError

Прости, ты не можешь этого сделать.

Глобальная переменная undefined также доступна только для чтения, поэтому вы не можете заставить замолчать печально известную ошибку "undefined is not a function:

"use strict";
undefined = function () {}; // TypeError: "undefined" доступен только для чтения
Правильные кейсы
"use strict";
var obj = Object.freeze({ name: "Score", points: 157 });
obj = { name: obj.name, points: 0 }; // замена его на новый работающий объект

("use strict");
var LUNG_COUNT = 2; // "var` работает, потому что он не только для чтения
LUNG_COUNT = 3; // ok (анатомически маловероятно, хотя)
Смотрите также

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