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 ๋ถ์ด๊ธฐ ์ซ๋ค๊ณ ํด์ ์ค๋ธ์ ํธ ์ ์ญ์ ๋ค ๋ถ์ฌ์ค
๋ญ ๋ช๊ฐ ๋ ๊ณ ์น ๊ฑด ์๋๋ฐ ์ปจ์ ๋ง ์ดํดํ๊ณ ์ง์ ๊ตฌํํด์ ์ฐ๋ฉด ๋ ๋ฏ ๊ทธ๋ผ ใ ใ ใ
์ด์๊ฒ ๋ณด๊ณ ์ถ์ผ๋ฉด ์ผ๋ก ๊ฐ๋ผ ์์ ๋ ๋ฃ์ด๋
https://jsfiddle.net/xetvzamq/4/
๋ณด๋ค๋ณด๋๊น ๊ณ ์น๊ณ ์ถ์๊ฒ ๊ฒ๋ ๋ง๋ค ใ ใ ๊ฑ ์ปจ์ ๋ง ๋ณด๋ฉด ๋ ๋ฏ
ใณใณ ์ ๊ธฐํ๋ค์ฌ