javascript - 如果方法不存在则创建一个

标签 javascript

我正在尝试模拟一个在 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 端口。它看起来像你所追求的:

https://github.com/nakajima/method-missing-js

关于javascript - 如果方法不存在则创建一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23417813/

相关文章:

javascript - 在谷歌应用程序脚本中错误地声明当前单元格变量

javascript - 从外部 JavaScript 函数调用 React 组件的函数

javascript - 如何将 CustomMarker 与 MarkerClustererPlus 结合使用?

javascript - Rivet.js 中的双向 Binder

javascript - 在移动设备上使用 javascript 检测屏幕密度?

javascript - 为什么对匿名函数的调用不起作用?

javascript - 部署页面时 Jquery ajax 调用不起作用

javascript - 如何从文本 block 中的跨度中展开文本?

javascript - 如果上面添加了 html,则来自 codepen 的 Css hover 会变得异常

javascript - 将数据从 Chrome 扩展程序传递到 .net 应用程序