我正在尝试使用一个可以接受尽可能多的未声明方法的函数,如下所示: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";
}
客户端是一个构造函数,它定义了一些方法,所以我使用return target [property]来访问它们。现在我终于可以执行myDefinedFunction.method1并获得一个OK。问题是我现在不知道如何检查是否存在method1调用的method2。如果我没有在代码的else部分返回任何内容,myDefinedFunction.method1.method2
会崩溃我的程序,因为method1未定义。尝试返回一个新的代理并返回newProxy.method2也不起作用,因为我还没有返回method1并且它是未定义的。我的代码要求能够读取调用了多少方法以及它们具有的名称。怎么可能?