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

Can arguments be referenced in JavaScript using ColdFusion syntax?

本文关键字:引用 参数 JavaScript ColdFusion 语法 可以使      更新时间:2023-09-26

在ColdFusion中,如果您想引用

<cfargument name="x">

然后你说:

arguments.x

在JavaScript中,如果您有一个函数:

var myFunction = function(x) {

那么,有没有一种方法可以显式地引用参数范围,比如:

arguments[0].x

或者一些东西,让你审视一切。

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

<script>
   function abc(params) {
    var x = params.x;
     var y = params["y"];
  }
   abc( { x: 10, y: "hello" });
</script>

然而,这样一来,函数签名处的代码就失去了一些可读性,而且必须在调用端提供参数名称。

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

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

恐怕不行。您可以显式使用xarguments[0],但仅限于此。除非,正如其他人所指出的,你经过一个物体。