proxy 代理

使用get 拦截,实现数组读取负数的索引

// proxy 使用get拦截 实现数组读取负数的索引
function createArray(...elements){
    let handle = {
        get: function(target, propKey, receiver){
            let index = Number(propKey);
            console.log("index---->", index)
            console.log("propKey---->", propKey)
            console.log("elements---->", elements)
            if(index < 0){
                propKey = String(target.length + index)
            }
            return Reflect.get(target, propKey, receiver)
        }
    }
    let target = []
    target.push(...elements);
    return new Proxy(target, handle)
}

let arr = createArray("a","b","c");
console.log(arr[-2])  //b

 

posted @ 2021-03-02 18:50  不夜候  阅读(38)  评论(0)    收藏  举报