19 lines
365 B
Markdown
19 lines
365 B
Markdown
|
|
```js run
|
|
let array = [1, 2, 3];
|
|
|
|
array = new Proxy(array, {
|
|
get(target, prop, receiver) {
|
|
if (prop < 0) {
|
|
// even if we access it like arr[1]
|
|
// prop is a string, so need to convert it to number
|
|
prop = +prop + target.length;
|
|
}
|
|
return Reflect.get(target, prop, receiver);
|
|
}
|
|
});
|
|
|
|
|
|
alert(array[-1]); // 3
|
|
alert(array[-2]); // 2
|
|
```
|