Files
2023-08-24 15:16:06 +02:00

5.7 KiB
Raw Blame History

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;
  };
};