Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Referência JavaScript
  4. JavaScript error reference
  5. TypeError: setting getter-only property "x"

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

TypeError: setting getter-only property "x"

A exceção apenas do modostrict do Javascript "setting getter-only property" ocorre quando é feita a tentativa de definir um novo valor para uma propriedade para qual apenas umgetter está especificado.

Mensagem

js
TypeError: Assignment to read-only properties is not allowed in strict mode (Edge)TypeError: setting getter-only property "x" (Firefox)TypeError: Cannot set property "prop" of #<Object> which has only a getter (Chrome)

Tipo de Erro

TypeError nomodo strict apenas.

O que deu errado?

Tem uma tentativa de definir um novo valor para uma propriedade para qual apenas umgetter está especificado.Isto será silenciosamente ignorado no modo non-strict, enquanto vai lançar umTypeError nomodo strict.

Exemplos

Propriedades sem setter

O exemplo abaixo mostra como definir um getter para uma propriedade. Isso não especifica umsetter, então umTypeError vai ser lançado quando for feita a tentativa de definir a propriedadetemperatura para30. Para mais detalhes veja também a páginaObject.defineProperty().

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

Para corrigir este erro, você vai ter que remover a linha 16, onde é feita a tentativa de definir a propriedade temperatura,ou você vai precisar implementar umsetter para a propriedade, desta forma, por exemplo:

js
"use strict";function Arquivo() {  var temperatura = null;  var arquivo = [];  Object.defineProperty(this, "temperatura", {    get: function () {      console.log("get!");      return temperatura;    },    set: function (value) {      temperatura = value;      arquivo.push({ val: temperatura });    },  });  this.getArquivo = function () {    return arquivo;  };}var arq = new Arquivo();arq.temperatura; // 'get!'arq.temperatura = 11;arq.temperatura = 13;arq.getArquivo(); // [{ val: 11 }, { val: 13 }]

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp