--- id: a2f1d72d9b908d0bd72bb9f6 title: Make a Person challengeType: 5 --- ## Description
Fill in the object constructor with the following methods below:
getFirstName() getLastName() getFullName() setFirstName(first) setLastName(last) setFullName(firstAndLast)
Run the tests to see the expected output for each method. The methods that take an argument must accept only one argument and it has to be a string. These methods must be the only available means of interacting with the object. Remember to use Read-Search-Ask if you get stuck. Try to pair program. Write your own code.
## Instructions
## Tests
```yml - text: Object.keys(bob).length should return 6. testString: 'assert.deepEqual(Object.keys(bob).length, 6, ''Object.keys(bob).length should return 6.'');' - text: bob instanceof Person should return true. testString: 'assert.deepEqual(bob instanceof Person, true, ''bob instanceof Person should return true.'');' - text: bob.firstName should return undefined. testString: 'assert.deepEqual(bob.firstName, undefined, ''bob.firstName should return undefined.'');' - text: bob.lastName should return undefined. testString: 'assert.deepEqual(bob.lastName, undefined, ''bob.lastName should return undefined.'');' - text: bob.getFirstName() should return "Bob". testString: 'assert.deepEqual(bob.getFirstName(), ''Bob'', ''bob.getFirstName() should return "Bob".'');' - text: bob.getLastName() should return "Ross". testString: 'assert.deepEqual(bob.getLastName(), ''Ross'', ''bob.getLastName() should return "Ross".'');' - text: bob.getFullName() should return "Bob Ross". testString: 'assert.deepEqual(bob.getFullName(), ''Bob Ross'', ''bob.getFullName() should return "Bob Ross".'');' - text: bob.getFullName() should return "Haskell Ross" after bob.setFirstName("Haskell"). testString: 'assert.strictEqual((function () { bob.setFirstName("Haskell"); return bob.getFullName(); })(), ''Haskell Ross'', ''bob.getFullName() should return "Haskell Ross" after bob.setFirstName("Haskell").'');' - text: bob.getFullName() should return "Haskell Curry" after bob.setLastName("Curry"). testString: 'assert.strictEqual((function () { var _bob=new Person(''Haskell Ross''); _bob.setLastName("Curry"); return _bob.getFullName(); })(), ''Haskell Curry'', ''bob.getFullName() should return "Haskell Curry" after bob.setLastName("Curry").'');' - text: bob.getFullName() should return "Haskell Curry" after bob.setFullName("Haskell Curry"). testString: 'assert.strictEqual((function () { bob.setFullName("Haskell Curry"); return bob.getFullName(); })(), ''Haskell Curry'', ''bob.getFullName() should return "Haskell Curry" after bob.setFullName("Haskell Curry").'');' - text: bob.getFirstName() should return "Haskell" after bob.setFullName("Haskell Curry"). testString: 'assert.strictEqual((function () { bob.setFullName("Haskell Curry"); return bob.getFirstName(); })(), ''Haskell'', ''bob.getFirstName() should return "Haskell" after bob.setFullName("Haskell Curry").'');' - text: bob.getLastName() should return "Curry" after bob.setFullName("Haskell Curry"). testString: 'assert.strictEqual((function () { bob.setFullName("Haskell Curry"); return bob.getLastName(); })(), ''Curry'', ''bob.getLastName() should return "Curry" after bob.setFullName("Haskell Curry").'');' ```
## Challenge 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(); ```
## Solution
```js 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(); ```