-
Notifications
You must be signed in to change notification settings - Fork 8k
/
index.md
54 lines (34 loc) · 1.47 KB
/
index.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
---
title: 'ReferenceError: reference to undefined property "x"'
slug: Web/JavaScript/Reference/Errors/Undefined_prop
---
{{jsSidebar("Errors")}}
## Mensagem
```
ReferenceError: reference to undefined property "x" (Firefox)
```
## Tipo de Erro
(Apenas no Firefox) O aviso {{jsxref("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 {{jsxref ("Operators / Property_Accessors", "property accessors", 0, 1)}} para saber mais sobre eles.
## Exemplos
### Errado
Neste caso, a propriedade `bar` é uma propriedade não definida, assim, ocorrerá um `ReferenceError`.
```js example-bad
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 {{jsxref ("Object.prototype.hasOwnProperty ()")}}, desta forma:
```js example-good
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);
}
```
## Veja também
- {{jsxref("Operators/Property_Accessors", "property accessors", 0, 1)}}