Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. JavaScript ссылки на ошибки
  5. TypeError: setting getter-only property "x"(установка свойства только для геттера "x")

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

TypeError: setting getter-only property "x"(установка свойства только для геттера "x")

Сообщения

TypeError: назначение свойств только для чтения не допускается в строгом режиме (Edge)TypeError: установка свойства только для геттера "x" (Firefox)TypeError: не удаётся установить свойство "prop" из #<Object>, который имеет только геттер (Chrome)

Тип ошибки

TypeError только в строгом режиме.

Что пошло не так?

Предпринята попытка задать новое значение свойству, для которого указан только геттер. . Пока это молча будет проигнорировано в non-strict режиме, оно броситTypeError вstrict mode.

Примеры

В приведённом ниже примере показано, как установить getter для свойства. Он не задаёт сеттер, так TypeError выдаётся при попытке установить свойство температуры до 30. Дополнительные сведения см. Также вObject.defineProperty() странице.

js
"use strict";function Archiver() {  var temperature = null;  Object.defineProperty(this, "temperature", {    get: function () {      console.log("get!");      return temperature;    },  });}var arc = new Archiver();arc.temperature; // 'get!'arc.temperature = 30;// TypeError: setting getter-only property "temperature"

Чтобы устранить эту ошибку, необходимо либо удалить строку 16, в которой предпринята попытка задать свойство temperature, либо реализовать для неё сеттер, например, как показано ниже:

js
"use strict";function Archiver() {  var temperature = null;  var archive = [];  Object.defineProperty(this, "temperature", {    get: function () {      console.log("get!");      return temperature;    },    set: function (value) {      temperature = value;      archive.push({ val: temperature });    },  });  this.getArchive = function () {    return archive;  };}var arc = new Archiver();arc.temperature; // 'get!'arc.temperature = 11;arc.temperature = 13;arc.getArchive(); // [{ val: 11 }, { val: 13 }]

Смотрите также

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp