PRGRM/JS

(유머) JS 연산자 오버로딩

2021. 8. 17. 23:29
const a = new MyArray(1, 2, 3);
const b = new MyArray(5, 6, 7);
console.log(a);
console.log(b);

const c = a . b;
console.log(c);

오버로딩 작동한다

 

const MyArray = new Proxy(function() {}, {
    constructor(f, args, target) {
        const array = new Array(...args);
        const proxy = new Proxy(array, {
            get(target, prop) {
                if(prop === '__array__') return array;
                reurn new Array(...array.concat(eval(prop).__array__));
            }
        });
        return proxy;
    }
});

eval 없이는 이룰 수 없는 오버로딩의 꿈