您可以在仓库 Github 上找到本文中的所有代码。
/** * @param {Array} arr */ function withNegativeIndex(arr) { return new Proxy(arr, { get(target, property, receiver) { const index = Number(property); if (index < 0) { property = target.length + index; } return Reflect.get(target, property, receiver); } }); } // Usage example const fruits = ["apple", "banana", "orange"]; const proxiedFruits = withNegativeIndex(fruits); console.log(proxiedFruits[-1]); // => 'orange' console.log(proxiedFruits[-2]); // => 'banana' console.log(proxiedFruits[-3]); // => 'apple' console.log(proxiedFruits[0]); // => 'apple' console.log(proxiedFruits[1]); // => 'banana' console.log(proxiedFruits[2]); // => 'orange'
以上是代理 - JavaScript 挑战的详细内容。更多信息请关注PHP中文网其他相关文章!