可以使用ColdFusion语法在JavaScript中引用参数吗?

时间:2012-03-23 18:24:35

标签: javascript coldfusion

在ColdFusion中,如果要引用

<cfargument name="x">
然后你说:

arguments.x

在JavaScript中,如果你有一个功能:

var myFunction = function(x) {
那么,有没有办法明确引用参数范围,如:

arguments[0].x

或其他什么东西,以便你确定一切。

3 个答案:

答案 0 :(得分:3)

使用arguments变量无法实现相同的功能,因为它不包含有关参数名称的信息。为了避免这种情况,您可以从使用多个参数切换到一个复合参数对象,该对象在其成员中保存实际参数值。

<script>
   function abc(params) {
    var x = params.x;
     var y = params["y"];
  }

   abc( { x: 10, y: "hello" });
</script>

但是这样你在函数签名处失去了代码的一些可读性,而且你必须在调用端提供param名称。

答案 1 :(得分:1)

您可以引用arguments伪变量,但参数是按编号索引,而不是按名称索引。避免直接弄乱arguments是个好主意;一个常见的习惯用法是将其转换为真正的数组:

var args = Array.slice.call(arguments, 0);

答案 2 :(得分:1)

我不敢。您可以明确使用xarguments[0],但仅此而已。除非,正如其他人指出的那样,你传递一个物体。