2018-10-10 18:03:03 -04:00
---
id: a2f1d72d9b908d0bd72bb9f6
title: Make a Person
challengeType: 5
2019-08-28 16:26:13 +03:00
forumTopicId: 16020
2018-10-10 18:03:03 -04:00
localeTitle: Сделать человека
---
## Description
2019-08-28 16:26:13 +03:00
< section id = 'description' >
2019-11-19 19:54:48 -05:00
Заполните конструктор объекта следующими способами: < blockquote > getFirstName () getLastName () getFullName () setFirstName (first) setLastName (последний) setFullName (firstAndLast) < / blockquote > Запустите тесты, чтобы увидеть ожидаемый результат для каждого метода. Методы, принимающие аргумент, должны принимать только один аргумент и должны быть строкой. Эти методы должны быть единственным доступным средством взаимодействия с объектом. Н е забудьте использовать < a href = "https://www.freecodecamp.org/forum/t/how-to-get-help-when-you-are-stuck-coding/19514" target = "_blank" > Read-Search-Ask,< / a > если вы застряли. Попробуйте подключить программу. Напишите свой собственный код.
2019-08-28 16:26:13 +03:00
< / section >
2018-10-10 18:03:03 -04:00
## Instructions
2019-08-28 16:26:13 +03:00
< section id = 'instructions' >
2018-10-10 18:03:03 -04:00
< / section >
## Tests
< section id = 'tests' >
```yml
tests:
2019-08-28 16:26:13 +03:00
- text: < code > Object.keys(bob).length</ code > should return 6.
testString: assert.deepEqual(Object.keys(bob).length, 6);
- text: < code > bob instanceof Person</ code > should return true.
testString: assert.deepEqual(bob instanceof Person, true);
- text: < code > bob.firstName</ code > should return undefined.
testString: assert.deepEqual(bob.firstName, undefined);
- text: < code > bob.lastName</ code > should return undefined.
testString: assert.deepEqual(bob.lastName, undefined);
- text: < code > bob.getFirstName()</ code > should return "Bob".
testString: assert.deepEqual(bob.getFirstName(), 'Bob');
- text: < code > bob.getLastName()</ code > should return "Ross".
testString: assert.deepEqual(bob.getLastName(), 'Ross');
- text: < code > bob.getFullName()</ code > should return "Bob Ross".
testString: assert.deepEqual(bob.getFullName(), 'Bob Ross');
- text: < code > bob.getFullName()</ code > should return "Haskell Ross" after < code > bob.setFirstName("Haskell")</ code > .
testString: assert.strictEqual((function () { bob.setFirstName("Haskell"); return bob.getFullName(); })(), 'Haskell Ross');
- text: < code > bob.getFullName()</ code > should return "Haskell Curry" after < code > bob.setLastName("Curry")</ code > .
testString: assert.strictEqual((function () { var _bob=new Person('Haskell Ross'); _bob.setLastName("Curry"); return _bob.getFullName(); })(), 'Haskell Curry');
- text: < code > bob.getFullName()</ code > should return "Haskell Curry" after < code > bob.setFullName("Haskell Curry")</ code > .
testString: assert.strictEqual((function () { bob.setFullName("Haskell Curry"); return bob.getFullName(); })(), 'Haskell Curry');
- text: < code > bob.getFirstName()</ code > should return "Haskell" after < code > bob.setFullName("Haskell Curry")</ code > .
testString: assert.strictEqual((function () { bob.setFullName("Haskell Curry"); return bob.getFirstName(); })(), 'Haskell');
- text: < code > bob.getLastName()</ code > should return "Curry" after < code > bob.setFullName("Haskell Curry")</ code > .
testString: assert.strictEqual((function () { bob.setFullName("Haskell Curry"); return bob.getLastName(); })(), 'Curry');
2018-10-10 18:03:03 -04:00
```
< / section >
## Challenge Seed
< section id = 'challengeSeed' >
< div id = 'js-seed' >
```js
var Person = function(firstAndLast) {
// Complete the method below and implement the others similarly
this.getFullName = function() {
return "";
};
return firstAndLast;
};
var bob = new Person('Bob Ross');
bob.getFullName();
```
< / div >
< / section >
## Solution
< section id = 'solution' >
```js
2019-08-28 16:26:13 +03:00
var Person = function(firstAndLast) {
var firstName, lastName;
function updateName(str) {
firstName = str.split(" ")[0];
lastName = str.split(" ")[1];
}
updateName(firstAndLast);
this.getFirstName = function(){
return firstName;
};
this.getLastName = function(){
return lastName;
};
this.getFullName = function(){
return firstName + " " + lastName;
};
this.setFirstName = function(str){
firstName = str;
};
this.setLastName = function(str){
lastName = str;
};
this.setFullName = function(str){
updateName(str);
};
};
var bob = new Person('Bob Ross');
bob.getFullName();
2018-10-10 18:03:03 -04:00
```
2019-08-28 16:26:13 +03:00
2018-10-10 18:03:03 -04:00
< / section >