--- id: 587d7daf367417b2b2512b7d title: Iterate Over All Properties challengeType: 1 videoUrl: '' localeTitle: Iterar sobre todas las propiedades --- ## Description
Ahora ha visto dos tipos de propiedades: propiedades own y propiedades prototype . Own propiedades Own se definen directamente en la instancia del objeto en sí. Y las propiedades del prototype se definen en el prototype .
función Bird (nombre) {
this.name = nombre; //propia propiedad
}

Bird.prototype.numLegs = 2; // propiedad prototipo

dejar pato = nuevo pájaro ("Donald");
Aquí es cómo se agregan las propiedades own duck a la matriz ownProps y las propiedades de prototype a la matriz prototypeProps :
dejemos ownProps = [];
vamos prototypeProps = [];

para (dejar propiedad en pato) {
if (duck.hasOwnProperty (propiedad)) {
ownProps.push (propiedad);
} else {
prototypeProps.push (propiedad);
}
}

console.log (ownProps); // imprime ["nombre"]
console.log (prototypeProps); // imprime ["numLegs"]
## Instructions
Agregue todas las propiedades own de beagle a la matriz ownProps . Agregue todas las propiedades prototype de Dog a la matriz prototypeProps .
## Tests
```yml tests: - text: La matriz ownProps debe incluir "name" . testString: 'assert(ownProps.indexOf("name") !== -1, "The ownProps array should include "name".");' - text: La matriz prototypeProps debe incluir "numLegs" . testString: 'assert(prototypeProps.indexOf("numLegs") !== -1, "The prototypeProps array should include "numLegs".");' - text: Resuelva este desafío sin usar el método Object.keys() . testString: 'assert(!/\Object.keys/.test(code), "Solve this challenge without using the built in method Object.keys().");' ```
## Challenge Seed
```js function Dog(name) { this.name = name; } Dog.prototype.numLegs = 4; let beagle = new Dog("Snoopy"); let ownProps = []; let prototypeProps = []; // Add your code below this line ```
## Solution
```js // solution required ```