ES6 proxy如何拦截并获取对象内部方法

最近在学习es6的相关知识,刚好看到proxy部分。我根据示例写一段拦截能够正常运行。但是想要在这个基础上做一些修改就出现了问提。我想要拦截某个对象的内部方法,获取传入的参数后做一些修改。但是发现拦截成功后,没有办法获取到参数。目前还没有找到原因

let target = {
        name: 'I am the target',
        say(name) {
            return name;
        },
    }
    let handler = {
        get: function(target, prop, bindthis, e){
            if(target[prop] && target[prop] instanceof Function){
                return this.apply(prop, target, ...arguments)
            }else{
                return target[prop]
            }
        },
        apply: function (fnName, ctx, args) {
                //这里我本来想要获取到后面调用时传入的 132 但是args参数传入的是调用的上下文对象。
                        console.log(args)
            if(fnName == 'say'){
                ctx.name = 'I had changed'
            }
            return ctx[fnName];
        }
    };

    let p = new Proxy(target, handler);
         console.log(p.say('132'))

我想要通过apply拦截我调用时传入的132,但是实际打印出来发现args是调用的target对象。请问是我哪里使用错误么?

https://blog.csdn.net/qq_30100043/article/details/53442921