使用Javascript代理ES6特性处理不存在的方法

使用Javascript代理ES6特性处理不存在的方法,javascript,methods,ecmascript-6,Javascript,Methods,Ecmascript 6,我正在尝试一个函数,它可以接受尽可能多的未声明的方法,就像这样:myDefinedFunction.method1.method2.method3.method4。我目前使用ES6代理功能使其正常工作,如下所示: return new Proxy(new Client(), { get: function (target, property, receiver) { if (target.hasOwnProperty(property)) { re

我正在尝试一个函数,它可以接受尽可能多的未声明的方法,就像这样:
myDefinedFunction.method1.method2.method3.method4
。我目前使用ES6代理功能使其正常工作,如下所示:

return new Proxy(new Client(), {
    get: function (target, property, receiver) {
        if (target.hasOwnProperty(property)) {
            return target[property];
        } else {
            return "Ok";
        }

客户机是一个构造函数,它定义了一些方法,所以我使用returntarget[property]来访问它们。现在,我终于可以完成我的DefinedFunction.method1并得到一个OK。问题是我现在不知道如何检查method1是否调用了method2。如果我没有在代码的else部分返回任何内容,
myDefinedFunction.method1.method2
会使我的程序崩溃,因为method1未定义。尝试返回一个新代理并返回newProxy.method2也不起作用,因为我还没有返回method1,而且它是未定义的。我的代码要求能够读取调用了多少个方法以及它们的名称。这是怎么可能的?

返回返回
接收器的函数应该可以工作。生命救世主。非常感谢。不客气。返回返回
接收器的函数应该可以工作。生命救世主。非常感谢,不客气。