let numbers = [];
numbers = new Proxy(numbers, {
get(target, prop) {
if (prop in target) {
return target[prop];
} else {
return 0; // return default value
}
},
set(target, prop, val) { // intercept the insertion behavior
if (typeof val == 'number') {
target[prop] = val;
}
return true;
}
});
numbers.push(1);
numbers.push(2);
numbers.push("test");
console.log(numbers[2], numbers[1], numbers[123]); // 0 2 0
let numbers = [];
numbers = new Proxy(numbers, {
get(target, prop) {
if (prop in target) {
return Reflect.get(...arguments);
} else {
return 0; // return default value
}
},
set(target, prop, val) { // intercept the insertion behavior
if (typeof val == 'number') {
return Reflect.set(...arguments);
}
return true;
}
});
numbers.push(1);
numbers.push(2);
numbers.push("test");
console.log(numbers[2], numbers[1], numbers[123]);