2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
id: 587d7daf367417b2b2512b7d
|
|
|
|
|
title: Iterate Over All Properties
|
|
|
|
|
challengeType: 1
|
|
|
|
|
videoUrl: ''
|
|
|
|
|
localeTitle: 迭代所有属性
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Description
|
|
|
|
|
<section id="description">您现在已经看到了两种属性: <code>own</code>属性和<code>prototype</code>属性。 <code>Own</code>属性直接在对象实例本身上定义。和<code>prototype</code>属性所定义的<code>prototype</code> 。 <blockquote> function Bird(name){ <br> this.name = name; //拥有财产<br> } <br><br> Bird.prototype.numLegs = 2; //原型属性<br><br>让鸭子=新鸟(“唐纳德”); </blockquote>以下是如何将<code>duck</code> <code>own</code>属性添加到数组<code>ownProps</code>和<code>prototype</code>属性到数组<code>prototypeProps</code> : <blockquote>让ownProps = []; <br>让prototypeProps = []; <br><br> for(let duck in duck){ <br> if(duck.hasOwnProperty(property)){ <br> ownProps.push(属性); <br> } else { <br> prototypeProps.push(属性); <br> } <br> } <br><br>的console.log(ownProps); //打印[“名称”] <br>的console.log(prototypeProps); //打印[“numLegs”] </blockquote></section>
|
|
|
|
|
|
|
|
|
|
## Instructions
|
|
|
|
|
<section id="instructions">所有添加<code>own</code>的属性<code>beagle</code>到数组<code>ownProps</code> 。将<code>Dog</code>所有<code>prototype</code>属性添加到数组<code>prototypeProps</code> 。 </section>
|
|
|
|
|
|
|
|
|
|
## Tests
|
|
|
|
|
<section id='tests'>
|
|
|
|
|
|
|
|
|
|
```yml
|
|
|
|
|
tests:
|
|
|
|
|
- text: <code>ownProps</code>数组应包含<code>"name"</code> 。
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert(ownProps.indexOf('name') !== -1);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
- text: <code>prototypeProps</code>数组应该包含<code>"numLegs"</code> 。
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert(prototypeProps.indexOf('numLegs') !== -1);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
- text: 无需使用内置方法<code>Object.keys()</code>即可解决此挑战。
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert(!/\Object.keys/.test(code));
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
## Challenge Seed
|
|
|
|
|
<section id='challengeSeed'>
|
|
|
|
|
|
|
|
|
|
<div id='js-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
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
## Solution
|
|
|
|
|
<section id='solution'>
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
// solution required
|
|
|
|
|
```
|
|
|
|
|
</section>
|