Files
2022-10-18 12:59:49 +05:30

3.8 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
a2f1d72d9b908d0bd72bb9f6 Eine Person erstellen 1 16020 make-a-person

--description--

Fülle den Objekt-Konstruktor mit den folgenden Methoden aus:

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

Führe die Tests durch, um die erwartete Ausgabe für jede Methode zu sehen. Die Methoden, die ein Argument annehmen, dürfen nur ein Argument akzeptieren, welches ein String sein muss. Diese Methoden müssen die einzigen verfügbaren Möglichkeiten sein, um mit dem Objekt zu interagieren.

--hints--

Es sollten keine Eigenschaften hinzugefügt werden. Object.keys(bob).length sollte immer 6 zurückgeben.

assert.strictEqual(
  Object.keys((function () {
    let bob = new Person('Bob Ross');
    bob.setFirstName('Haskell');
    bob.setLastName('Curry');
    bob.setFullName('John Smith');
    return bob;
  })()).length,
  6
 );

bob instanceof Person sollte true zurückgeben.

assert.deepEqual(bob instanceof Person, true);

bob.firstName sollte undefined zurückgeben.

assert.deepEqual(bob.firstName, undefined);

bob.lastName sollte undefined zurückgeben.

assert.deepEqual(bob.lastName, undefined);

bob.getFirstName() sollte den String Bob zurückgeben.

assert.deepEqual(bob.getFirstName(), 'Bob');

bob.getLastName() sollte den String Ross zurückgeben.

assert.deepEqual(bob.getLastName(), 'Ross');

bob.getFullName() sollte den String Bob Ross zurückgeben.

assert.deepEqual(bob.getFullName(), 'Bob Ross');

bob.getFullName() sollte den String Haskell Ross nach bob.setFirstName("Haskell") zurückgeben.

assert.strictEqual(
  (function () {
    bob.setFirstName('Haskell');
    return bob.getFullName();
  })(),
  'Haskell Ross'
);

bob.getFullName() sollte den String Haskell Curry nach bob.setLastName("Curry") zurückgeben.

assert.strictEqual(
  (function () {
    var _bob = new Person('Haskell Ross');
    _bob.setLastName('Curry');
    return _bob.getFullName();
  })(),
  'Haskell Curry'
);

bob.getFullName() sollte den String Haskell Curry nach bob.setFullName("Haskell Curry") zurückgeben.

assert.strictEqual(
  (function () {
    bob.setFullName('Haskell Curry');
    return bob.getFullName();
  })(),
  'Haskell Curry'
);

bob.getFirstName() sollte den String Haskell nach bob.setFullName("Haskell Curry") zurückgeben.

assert.strictEqual(
  (function () {
    bob.setFullName('Haskell Curry');
    return bob.getFirstName();
  })(),
  'Haskell'
);

bob.getLastName() sollte den String Curry nach bob.setFullName("Haskell Curry") zurückgeben.

assert.strictEqual(
  (function () {
    bob.setFullName('Haskell Curry');
    return bob.getLastName();
  })(),
  'Curry'
);

--seed--

--seed-contents--

const Person = function(firstAndLast) {
  // Only change code below this line
  // Complete the method below and implement the others similarly
  this.getFullName = function() {
    return "";
  };
  return firstAndLast;
};

const bob = new Person('Bob Ross');
bob.getFullName();

--solutions--

const Person = function(firstAndLast) {

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

const bob = new Person('Bob Ross');
bob.getFullName();