The setter function is called when you assign a value that the setter represents:
var obj = {
set a(newVal) { console.log("hello"); }
}
obj.a = 1;
As you can see, it does not make sense for the setter to accept arguments with multiple arguments, but it gives you the freedom to manipulate the value before setting it:
var person = {
surname: "John",
lastname: "Doe",
get fullname() {
return this.surname + " " + this.lastname;
},
set fullname(fullname) {
fullname = fullname.split(' ');
this.surname = fullname[0];
this.lastname = fullname[1];
}
};
console.log(person.fullname);
person.fullname = "Jane Roe";
console.log(person.surname);
console.log(person.lastname);
source
share