const person1 = {
age: 17,
get koreanAge () {
return this.age + 1;
},
set koreanAge (krAge) {
this.age = krAge - 1;
}
}
console.log(person1, person1.koreanAge);
person1.koreanAge = 20;
console.log(person1, person1.koreanAge);
class YalcoChicken {
constructor (name, no) {
this.name = name;
this.no = no;
}
get chainTitle() {
return `${this.no}호 ${this.name}점`;
}
set chainNo(chainNo) {
if (typeof chainNo !== 'number') return;
if (chainNo <= 0) return;
this.no = chainNo;
}
}
const chain1 = new YalcoChicken('판교', 3);
console.log(chain1.chainTitle);
chain1.chainNo = '4';
console.log(chain1);
chain1.chainNo = -1;
console.log(chain1);
chain1.chainNo = 4;
console.log(chain1);
이거고쳐라
class YalcoChicken {
constructor (name, no) {
this.name = name;
this.no = no;
}
get no () {
return this._no + '호점';
}
set no (no) {
this._no = no;
}
}
const chain1 = new YalcoChicken('판교', 3);
답
class YalcoChicken {
constructor (name, no) {
this.name = name;
this.no = no;
}
get no () {
return this._no + '호점';
}
set no (no) {
this._no = no;
}
}
const chain1 = new YalcoChicken('판교', 3);
console.log(chain1);
console.log(chain1.no);
console.log(chain1._no);
여기서 네임 어떻게 꺼낼꺼냐
딥
class Employee {
#name = '';
#age = 0;
constructor (name, age) {
this.#name = name;
this.#age = age;
}
get name() {
return this.#name;
}
set name(newName) {
this.#name = newName;
}
}
const emp1 = new Employee('김복동', 32);
console.log(emp1);
console.log(emp1.name); // 김복동
이거 두개가 뭐가다른가?
이미 존재하는 객체에 접근자 정의해라. defineproperty로
const o = {a: 0};
Object.defineProperty(o, 'b', { get: function() { return this.a + 1; } });
console.log(o.b) // 접근자 실행, a + 1 반환 (0 + 1 = 1)
계산된 속성 이름 써봐라
const expr = 'foo';
const obj = {
get [expr]() { return 'bar'; }
};
console.log(obj.foo); // "bar"
게터세터로 이게 나오게 해봐라
const language = {
set current(name) {
this.log.push(name);
},
log: []
};
language.current = 'EN';
language.current = 'FA';
console.log(language.log);
// Expected output: Array ["EN", "FA"]
이것도 다시해봐라
const expr = 'foo';
const obj = {
baz: 'bar',
set [expr](v) { this.baz = v; }
};
console.log(obj.baz);
// "bar"
obj.foo = 'baz';
// run the setter
console.log(obj.baz);
// "baz"
댓글 영역