作为一个显着简化的场景,假设我有 2 个 Javascript 对象,定义如下:
var ClassA = Class.extend({
'say': function(message) {
console.log(message);
}
... // some more methods ...
});
var ClassB = Class.extend({
init: function(obj) {
this._target = obj;
}
});
我想在 Javascript 中有某种机制可以使我们执行以下技巧:
var b = new ClassB( new ClassA() );
b.say("hello");
我想找个方法检测是否有方法被调用ClassB
,并且方法没有定义在里面ClassB
,那么我可以自动把方法调用转发到on ClassA
,它是in的成员变量ClassB
。
在现实世界的场景中,一个对象被实现为 brwoser 插件并使用标签ClassA
插入到网页中。<object>
它的方法是用 C++ 代码实现的,所以我无法从它的原型中分辨出它的方法,并ClassB
事先将它插入到 的原型中。
我想使用该技术来创建一个原生 Javascript 对象,以及 ClassA 界面的窄化版本。有没有办法我可以做到这一点?