29 lines
676 B
JavaScript
29 lines
676 B
JavaScript
class Person {
|
|
constructor(firstName, lastName) {
|
|
this.firstName = firstName;
|
|
this.lastName = lastName;
|
|
}
|
|
|
|
get name() {
|
|
return this.firstName + ' ' + this.lastName;
|
|
}
|
|
|
|
set name(name) {
|
|
var parts = name.split(' ');
|
|
this.firstName = parts[0];
|
|
this.lastName = parts[1];
|
|
}
|
|
}
|
|
|
|
var mazer = new Person('Mazer', 'Rackham');
|
|
assert.equal(mazer.name, 'Mazer Rackham');
|
|
mazer.name = 'Ender Wiggin';
|
|
assert.equal(mazer.firstName, 'Ender');
|
|
assert.equal(mazer.lastName, 'Wiggin');
|
|
|
|
var forLoopProperties = [];
|
|
for (var key in mazer) {
|
|
forLoopProperties.push(key);
|
|
}
|
|
assert.ok(forLoopProperties.indexOf('name') >= 0, 'getters/setters are enumerable');
|