ReferenceError: reference to undefined property "x"
Mensagem
ReferenceError: reference to undefined property "x" (Firefox)
Tipo de Erro
(Apenas no Firefox) O aviso ReferenceError
é reportado somente se a preferência javascript.options.strict
está definida como true
.
O que está errado?
O script tentou acessar uma propriedade de objeto que não existe. Existem duas maneiras de acessar propriedades; veja a página de referência property accessors para saber mais sobre eles.
Exemplos
Errado
Neste caso, a propriedade bar
é uma propriedade não definida, assim, ocorrerá um ReferenceError
.
var foo = {};
foo.bar; // ReferenceError: reference to undefined property "bar"
Certo
Para evitar o erro, você precisa adicionar uma definição de bar
ao objeto ou verificar a existência da propriedade bar
antes de tentar acessá-la; Uma maneira de fazer isso é usar o método Object.prototype.hasOwnProperty ()
, desta forma:
var foo = {};
// Define a propriedade bar
foo.bar = "moon";
console.log(foo.bar); // "moon"
// Teste para ter certeza se bar existe antes de acessa-lo
if (foo.hasOwnProperty("bar")) {
console.log(foo.bar);
}