Files
2024-01-24 19:52:36 +01:00

5.0 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
a2f1d72d9b908d0bd72bb9f6 Crea una persona 1 16020 make-a-person

--description--

Completa el constructor de objetos con los siguientes métodos:

getFirstName()
getLastName()
getFullName()
setFirstName(first)
setLastName(last)
setFullName(first, last)

Ejecuta las pruebas para ver el resultado esperado para cada método. Estos métodos deben ser el único medio disponible para interaccionar con el objeto. Cada método declarará una nueva instancia de Person como new Person('Bob', 'Ross').

--hints--

No debes cambiiar la signatura de la función.

assert.match(code, /const\s+Person\s*=\s*function\s*\(\s*first\s*,\s*last\s*\)\s*{/);

No debes reasignar el parámetro first.

assert.notMatch(code, /\bfirst\s*=\s*/);

No debes reasignar el parámetro last.

assert.notMatch(code, /\blast\s*=\s*/);

No deben añadirse propiedades. Object.keys(Person).length siempre debe devolver 6.

const _person = new Person('Bob', 'Ross');
_person.setFirstName('Haskell');
_person.setLastName('Curry');
_person.setFullName('John', 'Smith');
assert.lengthOf(Object.keys(_person), 6);

Deberías poder instanciar un objeto Person.

const _person = new Person('Bob', 'Ross');
assert.instanceOf(_person, Person);

El objeto Person no debe tener la propiedad firstName.

const _person = new Person('Bob', 'Ross');
assert.notProperty(_person, 'firstName');

El objeto Person no debe tener la propiedad lastName.

const _person = new Person('Bob', 'Ross');
assert.notProperty(_person, 'lastName');

El método .getFirstName() debe devolver la cadena Bob.

const _person = new Person('Bob', 'Ross');
assert.strictEqual(_person.getFirstName(), 'Bob');

El método .getLastName() debe devolver la cadena Ross.

const _person = new Person('Bob', 'Ross');
assert.strictEqual(_person.getLastName(), 'Ross');

El método .getFullName() debe devolver la cadena Bob Ross.

const _person = new Person('Bob', 'Ross');
assert.strictEqual(_person.getFullName(), 'Bob Ross');

El método .getFullName() debe devolver la cadena Haskell Ross después de invocar .setFirstName('Haskell').

const _person = new Person('Bob', 'Ross');
_person.setFirstName('Haskell');
assert.strictEqual(_person.getFullName(), 'Haskell Ross');

El método .getFullName() debe devolver la cadena Bob Curry después de invocar .setLastName('Curry').

const _person = new Person('Bob', 'Ross');
_person.setLastName('Curry');
assert.strictEqual(_person.getFullName(), 'Bob Curry');

El método .getFullName() debe devolver la cadena Haskell Curry después de invocar .setFullName('Haskell', 'Curry').

const _person = new Person('Bob', 'Ross');
_person.setFullName('Haskell', 'Curry');
assert.strictEqual(_person.getFullName(), 'Haskell Curry');

El método .getFirstName() debe devolver la cadena Haskell después de invocar .setFullName('Haskell', 'Curry').

const _person = new Person('Bob', 'Ross');
_person.setFullName('Haskell', 'Curry');
assert.strictEqual(_person.getFirstName(), 'Haskell');

El método .getLastName() debe devolver la cadena Curry después de invocar .setFullName('Haskell', 'Curry').

const _person = new Person('Bob', 'Ross');
_person.setFullName('Haskell', 'Curry');
assert.strictEqual(_person.getLastName(), 'Curry');

El método .getFullName() debe devolver la cadena Emily Martinez de la Rosa después de invocar .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');

El método .getFirstName() debe devolver la cadena Emily Martinez tras invocar .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');

El método .getLastName() debe devolver la cadena de la Rosa tras invocar .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;
  };
};