我正在尝试模拟一个在 JSBin 中具有许多方法的对象。我不想重新定义整个方法是JSBin。主要是因为方法被频繁添加,我只是想探索我想要的是否可能。有没有一种方法可以创建一个对象,以便无论调用它的什么方法,它都会返回一个任意值?
var ret = {
//no methods
};
var result = ret.getSomeVal("funny_cat.gif");
console.log(result); //funny_cat.gif
是否可以拦截对 ret
的调用并自动创建 returnSomeVal
方法,以便它只返回传递给它的任何参数?
最佳答案
在 Ruby 中,此功能称为 method_missing
。每当您调用尚未在对象上定义的方法时,都会调用该方法。
从那时起,您可以做任何您想做的事情,例如向自己发送一封电子邮件来通知您某些用户试图调用未定义的方法,甚至使 method_missing
在这些中返回一些默认响应案例。
我找到了 javascript 的 method_missing
端口。它看起来像你所追求的:
关于javascript - 如果方法不存在则创建一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23417813/