作爲siginificantly簡化的情況下,說我有2個JavaScript對象定義如下:代表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
定義,那麼我就可以自動轉發方法調用是在ClassA
,這是ClassB
中的成員變量。
在現實世界中,ClassA
是一個實現爲brwoser插件並使用<object>
標記插入網頁的對象。它的方法是用C++代碼實現的,所以我無法從它的原型中告訴它的方法,並且事先將它插入到ClassB
的原型中。
我想用技術來創建一個原生的Javascript對象,帶有ClassA界面的Narraw-ed版本。有什麼辦法可以做到這一點?
聽起來像是你真的想ClassB的繼承ClassA的功能。無論如何,'Class.extend({})'不是原生的JS機制,你在使用什麼框架? – pixelistik 2012-07-09 11:52:02
@pixelistik我相信他給Object添加了一個擴展方法。 – Joseph 2012-07-09 11:55:52
@pixelistik在項目中我使用JS.Class(http://jsclass.jcoglan.com),而在這個例子中,我使用了John Resig的簡單繼承(http://ejohn.org/blog/simple-javascript-inheritance /)。不應該有太多的區別。 – 2012-07-10 01:54:54