我想在引用的属性/方法不存在时启动的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");
那我该怎么做呢?
可以做到吗?
仅供参考:Firefox支持非标准__noSuchMethod__
扩展。