Object.prototype.setProps = function(obj, scope) {

const origin = Symbol['origin'];ย  ย  ย  ย  ย  ย ย 

if(obj) {ย  ย  ย  ย  ย  ย  ย  ย  ย  ย ย 

this.__proto__[origin] = Object.assign({}, this.sk);ย  ย  ย  ย ย 

Object.assign(this.sk, obj);

let keyList = Object.keys(this.sk);

keyList.forEach((v)=>{

this.sk[v] = this.sk[v].bind(scope);

});

} else {

this.__proto__[origin] = this.sk;ย  ย  ย  ย  ย ย 

}

return origin;

};


Object.prototype.returnProps = function(symbolValue) {

if(this.sk !== null && this.__proto__[symbolValue]) {

this.sk = Object.assign({}, this.__proto__[symbolValue]);

let keyList = Object.keys(this.sk);

keyList.forEach((v)=>{

this.sk[v] = this.sk[v].bind(this);

});

}ย  ย ย 

};


๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ•ด์คฌ์„ ๋•Œ, ํ•ฉ์„ฑํ•˜๊ณ , ์ œ๊ฑฐ ํ•  ๋•Œ,ย ์›๋ณตํ•˜๋Š” ๋ฐฉ์‹์ž„

๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ์˜ค์—ผ๋˜๋ฉด ์•ˆ๋˜๋‹ˆ๊นŒ, ์‹ฌ๋ณผ๋กœ ์ž‘์—…ํ–ˆ๊ณ ,

์‹ฌ๋ณผ์€ ์ŠคํŠธ๋ง์œผ๋กœ ์ฐพ์„ ์ˆ˜์—†๋Š” ์œ ์ผ ๊ฐ’์ด๋‹ˆ๊นŒ ๋ฆฌํ„ด ๊ฐ’ ์ž์ฒด๋ฅผ ์žƒ์–ด๋ฒ„๋ฆฌ๋ฉด ์ €๊ฑฐ ๋ชป์ง€์›€

getter setter ๋ถ™์ด๊ธฐ ์‹ซ๋‹ค๊ณ  ํ•ด์„œ ์˜ค๋ธŒ์ ํŠธ ์ „์—ญ์— ๋‹ค ๋ถ™์—ฌ์คŒ

๋ญ ๋ช‡๊ฐœ ๋” ๊ณ ์น ๊ฑด ์žˆ๋Š”๋ฐ ์ปจ์…‰๋งŒ ์ดํ•ดํ•˜๊ณ  ์ง์ ‘ ๊ตฌํ˜„ํ•ด์„œ ์“ฐ๋ฉด ๋ ๋“ฏ ๊ทธ๋Ÿผ ใ…‚ใ…‚ใ…‚