提问者:小点点

将一个值传递给一个特定的参数,而不关心参数的位置[重复]


我想知道是否可以通过指定一个特定参数的名称来将一个值传递给它,而不考虑这个参数是第一个,第二个还是第100个。

例如,在Python中,您可以很容易地完成如下操作:

def myFunction(x, y):
    pass

myFunction(y=3);

我确实需要将一个值传递给一个我不一定知道它在parameters枚举中的位置的特定参数。我到处找了一段时间,但似乎什么都不管用。


共3个答案

匿名用户

否,JavaScript中不存在命名参数。

有一种(某种)变通方法,通常一个复杂的方法可以用一个对象来代替单独的参数

function doSomething(obj){
   console.log(obj.x);
   console.log(obj.y);
}

可以用

doSomething({y:123})

它将首先记录未定义的(x),然后记录123(y)。

您也可以允许某些参数是可选的,如果不提供,则提供默认值:

function doSomething(obj){
   var localX = obj.x || "Hello World";
   var localY = obj.y || 999;
   console.log(localX);
   console.log(localY);
}

匿名用户

这种方式传递参数在JavaScript中是不可能的。如果需要这样做,最好将一个对象传递到函数中,并将属性设置为表示要传递的参数:

function myFunction(p) {
    console.log(p.x);
    console.log(p.y);
}

myFunction({y:3});

匿名用户

function myFunction(parameters) {
  ...
  var x = parameters.myParameter;
}

myFunction({myParameter: 123});