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