Во первых в конструкторе для определения свойств нужно использовать this.
Во вторых вычисляемое значение здесь только fullName.
И в третьих по условию нужно проверять валидность назначаемого fullName.
function NamedOne(first, last) {
// -- SHOULD be changed --
this.firstName = first;
this.lastName = last;
Object.defineProperty(this, 'fullName', {
get: function () {
return this.firstName + " " + this.lastName;
},
set: function (value) {
const initials = value.split(" ");
if (initials.length >= 2) {
this.firstName = initials[0];
this.lastName = initials[1]
}
}
});
}
геттеры и сеттеры