2.6 KiB
2.6 KiB
id, title, localeTitle, challengeType
id | title | localeTitle | challengeType |
---|---|---|---|
587d7dae367417b2b2512b7b | Understand Own Properties | Entender propiedades propias | 1 |
Description
Bird
define dos propiedades: name
y numLegs
:
function Bird(name) {
this.name = name;
this.numLegs = 2;
}
let duck = new Bird("Donald");
let canary = new Bird("Tweety");
name
y numLegs
se denominan propiedades own
, porque se definen directamente en el objeto de instancia. Eso significa que el duck
y el canary
tienen su propia copia separada de estas propiedades.
De hecho, cada instancia de Bird
tendrá su propia copia de estas propiedades.
El siguiente código agrega todas las propiedades own
de duck
a la matriz ownProps
:
let ownProps = [];
for (let property in duck) {
if(duck.hasOwnProperty(property)) {
ownProps.push(property);
}
}
console.log(ownProps); // prints [ "name", "numLegs" ]
Instructions
own
de canary
a la matriz ownProps
.
Tests
tests:
- text: <code>ownProps</code> debe incluir los valores <code>"numLegs"</code> y <code>"name"</code> .
testString: 'assert(ownProps.indexOf("name") !== -1 && ownProps.indexOf("numLegs") !== -1, "<code>ownProps</code> should include the values <code>"numLegs"</code> and <code>"name"</code>.");'
- text: Resuelva este desafío sin usar el método <code>Object.keys()</code> .
testString: 'assert(!/\Object.keys/.test(code), "Solve this challenge without using the built in method <code>Object.keys()</code>.");'
Challenge Seed
function Bird(name) {
this.name = name;
this.numLegs = 2;
}
let canary = new Bird("Tweety");
let ownProps = [];
// Add your code below this line
Solution
function Bird(name) {
this.name = name;
this.numLegs = 2;
}
let canary = new Bird("Tweety");
function getOwnProps (obj) {
const props = [];
for (let prop in obj) {
if (obj.hasOwnProperty(prop)) {
props.push(prop);
}
}
return props;
}
const ownProps = getOwnProps(canary);