5.0 KiB
5.0 KiB
id, title, challengeType
id | title | challengeType |
---|---|---|
a2f1d72d9b908d0bd72bb9f6 | Make a Person | 5 |
Description
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
tests:
- text: <code>Object.keys(bob).length</code> should return 6.
testString: 'assert.deepEqual(Object.keys(bob).length, 6, ''<code>Object.keys(bob).length</code> should return 6.'');'
- text: <code>bob instanceof Person</code> should return true.
testString: 'assert.deepEqual(bob instanceof Person, true, ''<code>bob instanceof Person</code> should return true.'');'
- text: <code>bob.firstName</code> should return undefined.
testString: 'assert.deepEqual(bob.firstName, undefined, ''<code>bob.firstName</code> should return undefined.'');'
- text: <code>bob.lastName</code> should return undefined.
testString: 'assert.deepEqual(bob.lastName, undefined, ''<code>bob.lastName</code> should return undefined.'');'
- text: <code>bob.getFirstName()</code> should return "Bob".
testString: 'assert.deepEqual(bob.getFirstName(), ''Bob'', ''<code>bob.getFirstName()</code> should return "Bob".'');'
- text: <code>bob.getLastName()</code> should return "Ross".
testString: 'assert.deepEqual(bob.getLastName(), ''Ross'', ''<code>bob.getLastName()</code> should return "Ross".'');'
- text: <code>bob.getFullName()</code> should return "Bob Ross".
testString: 'assert.deepEqual(bob.getFullName(), ''Bob Ross'', ''<code>bob.getFullName()</code> should return "Bob Ross".'');'
- text: <code>bob.getFullName()</code> should return "Haskell Ross" after <code>bob.setFirstName("Haskell")</code>.
testString: 'assert.strictEqual((function () { bob.setFirstName("Haskell"); return bob.getFullName(); })(), ''Haskell Ross'', ''<code>bob.getFullName()</code> should return "Haskell Ross" after <code>bob.setFirstName("Haskell")</code>.'');'
- text: <code>bob.getFullName()</code> should return "Haskell Curry" after <code>bob.setLastName("Curry")</code>.
testString: 'assert.strictEqual((function () { var _bob=new Person(''Haskell Ross''); _bob.setLastName("Curry"); return _bob.getFullName(); })(), ''Haskell Curry'', ''<code>bob.getFullName()</code> should return "Haskell Curry" after <code>bob.setLastName("Curry")</code>.'');'
- text: <code>bob.getFullName()</code> should return "Haskell Curry" after <code>bob.setFullName("Haskell Curry")</code>.
testString: 'assert.strictEqual((function () { bob.setFullName("Haskell Curry"); return bob.getFullName(); })(), ''Haskell Curry'', ''<code>bob.getFullName()</code> should return "Haskell Curry" after <code>bob.setFullName("Haskell Curry")</code>.'');'
- text: <code>bob.getFirstName()</code> should return "Haskell" after <code>bob.setFullName("Haskell Curry")</code>.
testString: 'assert.strictEqual((function () { bob.setFullName("Haskell Curry"); return bob.getFirstName(); })(), ''Haskell'', ''<code>bob.getFirstName()</code> should return "Haskell" after <code>bob.setFullName("Haskell Curry")</code>.'');'
- text: <code>bob.getLastName()</code> should return "Curry" after <code>bob.setFullName("Haskell Curry")</code>.
testString: 'assert.strictEqual((function () { bob.setFullName("Haskell Curry"); return bob.getLastName(); })(), ''Curry'', ''<code>bob.getLastName()</code> should return "Curry" after <code>bob.setFullName("Haskell Curry")</code>.'');'
Challenge Seed
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
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();