JavaScript'te OOP'de Sanal Özellik Setter'ları
Sanal özellik getter'larının yanı sıra onların setter'larını da oluşturabiliriz. Bu durumda, setter içinde verileri almalı, ayırmalı ve ilgili kısımları gerekli genel özelliklere yazmalıyız.
Deneyelim. full sanal özelliğinin
setter'ını uygulayalım:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
get full() {
return this.name + ' ' + this.surn;
}
set full(full) {
let [name, surn] = full.split(' ');
this.name = name;
this.surn = surn;
}
}
Yapıyı sadeleştirelim:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
get full() {
return this.name + ' ' + this.surn;
}
set full(full) {
[this.name, this.surn] = full.split(' ');
}
}
Sınıfın bir nesnesini oluşturalım:
let user = new User('john', 'smit');
Verileri sanal setter'ımıza yazalım:
user.full = 'eric jons';
Nesne özelliklerinin değiştiğini kontrol edelim:
console.log(user.name); // 'eric'
console.log(user.surn); // 'jons'
console.log(user.full); // 'eric jons'