我想定義一個Javascript對象的行爲,當被引用的屬性/方法不存在時,這些對象將會啓動。 在Lua中,您可以使用metatables和__index & __newindex
方法來做到這一點。JavaScript原型有相當於Lua的__index&__newindex的東西嗎?
--Lua code
o = setmetatable({},{__index=function(self,key)
print("tried to undefined key",key)
return nil
end
})
所以我想知道如果在JavaScript中有類似的東西。
我試圖做到的,是一個通用的RPC接口,它的工作原理是這樣的(不是有效的JavaScript):
所以function RPC(url)
{
this.url = url;
}
RPC.prototype.__index=function(methodname) //imagine that prototype.__index exists
{
AJAX.get(this.url+"?call="+ methodname);
}
var proxy = RPC("http://example.com/rpcinterface");
proxy.ServerMethodA(1,2,3);
proxy.ServerMethodB("abc");
我怎麼能這樣做呢?
這可以完成嗎?
任何想法的人? – 2009-10-29 10:38:29