【问题标题】:Using named arguments in Javascript with regular expressions as names of arguments在 Javascript 中使用带有正则表达式的命名参数作为参数的名称
【发布时间】:2012-02-11 15:47:46
【问题描述】:

是否可以在 Java 或 Javascript 中使用带有正则表达式的命名参数作为参数的名称?我想让这样的函数调用成为可能:

f("function name:", "drawCircle", "radius:" 1, "xPos:" 0, "yPos:", 0, "color:", "red");

或者像这样,效果一模一样:

f("name of function:", "draw a circle", "y position:", 0, "color:", "red", "rad:" 1, "x location:" 0);

这两个都应该等价于 foo(1, 0, 0, red)。

在这两种情况下,给出的参数都应该匹配正则表达式列表。应该可以以任何顺序列出参数和函数名,结果相同。

有没有办法实现这样的东西?

【问题讨论】:

  • 明确一点,Java 和 JavaScript 几乎没有共同之处。它们是完全不同的语言。
  • 别忘了用var声明你的本地(JavaScript)变量!!
  • 我正在使用 javax.script 包,在 Java 中使用 Javascript。我使用 Javascript 是因为我更喜欢使用使用闭包/嵌套函数的编程语言。

标签: javascript parameters arguments named


【解决方案1】:
f({
  "name": "drawCircle", 
  "radius": 1, 
  "xPos": 0, 
  "yPos": 0, 
  "color": "red"
});

这就是你在 javascript 中使用对象的原因。

虽然你可能想要

drawCircle({
  radius: 0,
  x: 0,
  y: 0,
  color: "red"
});

【讨论】:

  • 我想要更像这样的东西(在伪代码中,使用应该由构造函数中的字符串匹配的正则表达式)。 f({/(fun(ction|))(| )(name|nm)/: "drawCircle", /(rad)(|ius)/i: 1, /(xPos)/i: 0, /(y)(| )(pos)(ition|)/i: 0, /color/i: "red" });
  • @AndersonGreen 听起来完全没用。你的用例是什么?
  • 我正在尝试使用匹配特定正则表达式的字符串作为参数的名称。函数调用中的每个参数名称都应该对应一个正则表达式。我试图通过允许每个参数有多个名称来更容易记住参数的名称。
  • 无法在 Javascript 中使用正则表达式作为函数名或命名参数,但我正在尝试寻找解决方法。
  • @AndersonGreen 您为什么不花时间正确记录您的 API?
猜你喜欢
  • 2015-11-28
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-13
  • 2021-01-08
  • 2022-07-06
相关资源
最近更新 更多