5.7 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| a2f1d72d9b908d0bd72bb9f6 | Створіть людину | 1 | 16020 | make-a-person |
--description--
Заповніть конструктор об’єкта, використовуючи наведені нижче методи:
getFirstName()
getLastName()
getFullName()
setFirstName(first)
setLastName(last)
setFullName(first, last)
Запустіть тести, щоб побачити очікуваний вивід для кожного методу. Ці методи повинні бути єдиними доступними засобами для взаємодії з об’єктом. Кожен тест оголосить новий екземпляр Person як new Person('Bob', 'Ross').
--hints--
Ви не повинні змінювати сигнатуру функції.
assert.match(code, /const\s+Person\s*=\s*function\s*\(\s*first\s*,\s*last\s*\)\s*{/);
Ви не повинні перепризначати параметр first.
assert.notMatch(code, /first\s*=\s*/);
Ви не повинні перепризначати параметр last.
assert.notMatch(code, /last\s*=\s*/);
Не треба додавати жодних властивостей. Object.keys(Person).length завжди має повертати 6.
const _person = new Person('Bob', 'Ross');
_person.setFirstName('Haskell');
_person.setLastName('Curry');
_person.setFullName('John', 'Smith');
assert.lengthOf(Object.keys(_person), 6);
Ви повинні мати можливість створити об’єкт Person.
const _person = new Person('Bob', 'Ross');
assert.instanceOf(_person, Person);
Об’єкт Person не повинен мати властивість firstName.
const _person = new Person('Bob', 'Ross');
assert.notProperty(_person, 'firstName');
Об’єкт Person не повинен мати властивість lastName.
const _person = new Person('Bob', 'Ross');
assert.notProperty(_person, 'lastName');
Метод .getFirstName() має повертати рядок Bob.
const _person = new Person('Bob', 'Ross');
assert.strictEqual(_person.getFirstName(), 'Bob');
.getLastName() має повертати рядок Ross.
const _person = new Person('Bob', 'Ross');
assert.strictEqual(_person.getLastName(), 'Ross');
Метод .getFullName() має повертати рядок Bob Ross.
const _person = new Person('Bob', 'Ross');
assert.strictEqual(_person.getFullName(), 'Bob Ross');
Метод .getFullName() має повертати рядок Haskell Ross після виклику .setFirstName('Haskell').
const _person = new Person('Bob', 'Ross');
_person.setFirstName('Haskell');
assert.strictEqual(_person.getFullName(), 'Haskell Ross');
Метод .getFullName() має повертати рядок Bob Curry після виклику .setLastName('Curry').
const _person = new Person('Bob', 'Ross');
_person.setLastName('Curry');
assert.strictEqual(_person.getFullName(), 'Bob Curry');
Метод .getFullName() має повертати рядок Haskell Curry після виклику .setFullName('Haskell', 'Curry').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Haskell', 'Curry');
assert.strictEqual(_person.getFullName(), 'Haskell Curry');
Метод .getFirstName() має повертати рядок Haskell після виклику .setFullName('Haskell', 'Curry').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Haskell', 'Curry');
assert.strictEqual(_person.getFirstName(), 'Haskell');
Метод .getLastName() має повертати рядок Curry після виклику .setFullName('Haskell', 'Curry').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Haskell', 'Curry');
assert.strictEqual(_person.getLastName(), 'Curry');
Метод .getFullName() має повертати рядок Emily Martinez de la Rosa після виклику .setFullName('Emily Martinez', 'de la Rosa').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Emily Martinez', 'de la Rosa');
assert.strictEqual(_person.getFullName(), 'Emily Martinez de la Rosa');
Властивість .getFirstName() має повертати рядок Emily Martinez після виклику .setFullName('Emily Martinez', 'de la Rosa').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Emily Martinez', 'de la Rosa');
assert.strictEqual(_person.getFirstName(), 'Emily Martinez');
Властивість .getLastName() має повертати рядок de la Rosa після виклику .setFullName('Emily Martinez', 'de la Rosa').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Emily Martinez', 'de la Rosa');
assert.strictEqual(_person.getLastName(), 'de la Rosa');
--seed--
--seed-contents--
const Person = function(first, last) {
this.getFullName = function() {
return "";
};
return "";
};
--solutions--
const Person = function(first, last) {
let firstName = first;
let lastName = last;
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(first, last){
firstName = first;
lastName = last;
};
};