var o = new SomethingComplex;
var o.foo = new SomeThing; // we have o.foo.doSomething
setUpForwarding(o, o.foo);
o.doSomething(); // calls o.doSomething if exist, else o.foo.doSomething
如何设置不显眼的方法转发?使用 ES5 技术非常好。我可以想象这在 IE6 中是不可能的
我不是在寻找一种o.call("doSomething");
我希望它完全不引人注目的方法。
同样进行编辑.__proto__
以便您可以o.foo
放入原型链是作弊并且是不允许的。允许在其自然原型链中覆盖o
,但不限于复杂性。o.foo
o
是否还有可行的选择?
我只记得node-proxy的存在,它允许您扩展node.js以实现代理(在 C++ 中实现)。这提供了包罗万象的功能,并且可能可以移植到其他 SS JS。