JavaScript – propriedades do objeto e cadeia de protótipo

Coleção Filhos do JavaScript | Este artigo

Como vimos em outro protocolo, as propriedades podem ser criadas de duas maneiras diferentes. Isso é feito usando uma notação de objeto literal ou usando um construtor de função.

var person = {};
person
.name = "John";
person
.surname = "Smith";

function Person(name, surname) {
this.name = name;
this.surname = surname;
}
var person = new Person("John", "Smith");

Verificando a existência da propriedade do objeto

console.log("name" in person); // true
console
.log(person.hasOwnProperty("name")); //true

Usando notação de dicionário

console.log(person["name"]); // John

Usando for..in loop

for (var key in person) {
console
.log(person[key]);
}
// John Smith

Se você estiver usando protótipos para evitar a exibição de propriedades superiores na cadeia de protótipos, poderá filtrar essas propriedades usando object.hasOwnProperty(property_name). Observe também que se você declarar funções anônimas como variáveis, terá que filtrá-las também com (typeof(person[key]) != "function"). Definição pareceriavar myFn = function(){};

for (var key in person) {
if (person.hasOwnProperty(key)) //filter prototype properties
console
.log(person[key]);
}
// John Smith

Coleção Filhos do JavaScript | Este artigo