let array = [1, 2, 3];
array = new Proxy(array, {
get(target, p, receiver) {
if(p<0){
p = +p + target.length;
}
return Reflect.get(target, p, receiver);
},
});
console.log( array[1] ); // 3
console.log( array[-2] ); // 2
get(target, p, receiver)
배열인덱스를 내부적으로는 p값을 문자열로 받는다.
p = +p + target.length;
음수를 앞에서 숫자로 변환해서 연산한다.