Javascript 如何使用带可选参数命名的Apply调用函数?
使用此函数def:Javascript 如何使用带可选参数命名的Apply调用函数?,javascript,node.js,apply,optional-parameters,Javascript,Node.js,Apply,Optional Parameters,使用此函数def:myFunc(p1,p2,p3=3,p4=4){//do something} 我知道您可以使用Apply调用函数, 如下所示:myFunc.apply([1,2]) 其中1为p1,2为p2 但是在指定特定的可选参数名称时,如何使用apply: myFunc(1,2,p4=>5) 谢谢 与直接调用它的方式相同。调用函数时,若要跳过默认参数,请传递undefined: myFunc(1, 2, undefined, 4); 您可以使用apply执行相同的操作,只需在希望输入默认
myFunc(p1,p2,p3=3,p4=4){//do something}
我知道您可以使用Apply
调用函数,
如下所示:myFunc.apply([1,2])
其中1为p1,2为p2
但是在指定特定的可选参数名称时,如何使用apply
:
myFunc(1,2,p4=>5)
谢谢 与直接调用它的方式相同。调用函数时,若要跳过默认参数,请传递
undefined
:
myFunc(1, 2, undefined, 4);
您可以使用apply
执行相同的操作,只需在希望输入默认参数时传入undefined
:
函数myFunc(p1,p2,p3=3,p4=4){
控制台日志(“p1:”,p1);
console.log(“p2:,p2”);
控制台日志(“p3:”,p3);
console.log(“p4:,p4”);
}
myFunc.apply(空[11,22,未定义,44]);//跳过p3,方法与直接调用p3相同。调用函数时,若要跳过默认参数,请传递
undefined
:
myFunc(1, 2, undefined, 4);
您可以使用apply
执行相同的操作,只需在希望输入默认参数时传入undefined
:
函数myFunc(p1,p2,p3=3,p4=4){
控制台日志(“p1:”,p1);
console.log(“p2:,p2”);
控制台日志(“p3:”,p3);
console.log(“p4:,p4”);
}
myFunc.apply(空[11,22,未定义,44]);//在JavaScript中跳过p3,以传递传递对象所需的特定命名参数。您可以使用来获得所需的结果
{p1: 1, p2: 2, p4: 5}
函数myFunc({p1,p2,p3=3,p4=4}{console.log(p3);}
myFunc.apply(null,[{p1:1,p2:2,p4:5}])代码>在JavaScript中传递特定的命名参数,您需要传递一个对象。您可以使用来获得所需的结果
{p1: 1, p2: 2, p4: 5}
函数myFunc({p1,p2,p3=3,p4=4}{console.log(p3);}
myFunc.apply(null,[{p1:1,p2:2,p4:5}])代码>Javascript没有命名参数(包括ES6)。因此,正如您所猜测的,您只能对位置参数使用apply
,因此无法按您想要的方式使用apply
在ES6中,模拟命名参数的一种方法是使用对象,例如:
myFunc({ from=3, to=5 });
使用上述技术并应用的示例(ES6):
您可以在这里阅读更多内容:Javascript没有命名参数(包括ES6)。因此,正如您所猜测的,您只能对位置参数使用apply
,因此无法按您想要的方式使用apply
在ES6中,模拟命名参数的一种方法是使用对象,例如:
myFunc({ from=3, to=5 });
使用上述技术并应用的示例(ES6):
您可以在此处阅读更多内容:JavaScript首先没有命名参数p4=>5
是一个箭头函数,是function(p4){return 5;}
的缩写。JavaScript首先没有命名参数p4=>5
是一个箭头函数,是function(p4){return 5;}
的缩写。看起来像是您从中复制了该示例,并更改了函数名。您可能应该添加属性。我在试图确保他的语法不存在时也遇到了它,当我阅读您的答案时,它仍然在我的屏幕上。:)看起来您从中复制了该示例,并更改了函数名。您可能应该添加属性。我在试图确保他的语法不存在时也遇到了它,当我阅读您的答案时,它仍然在我的屏幕上。:)如果投反对票的人能解释为什么我会很感激。我认为他们这样做可能是因为这是一个重复的问题,但我显然没有意识到,否则我就不会回答。这并没有使我的回答变得不那么有效。是的!这就是我需要的。如果投反对票的人能解释为什么我会很感激。我认为他们这样做可能是因为这是一个重复的问题,但我显然没有意识到,否则我就不会回答。这并没有使我的回答变得不那么有效。是的!这正是我需要的。我的答案也是如此。我敢肯定,这只是在不知不觉中回答了一个愚蠢的问题。shrug@zfrisch就连法比奥的回答和问题本身也遭到了否决。这个问题不再被标记为重复,因为我已经重新打开了它。否决票是在之后发生的,所以我想这只是一个连续的否决票。为了简单起见,我喜欢这个。但我选择了sfrisch答案,因为它只允许我传递我需要传递的东西,没有其他东西,也就是说,没有未定义的。我的答案也发生了同样的事情。我敢肯定,这只是在不知不觉中回答了一个愚蠢的问题。shrug@zfrisch就连法比奥的回答和问题本身也遭到了否决。这个问题不再被标记为重复,因为我已经重新打开了它。否决票是在之后发生的,所以我想这只是一个连续的否决票。为了简单起见,我喜欢这个。但我会选择sfrisch答案,因为它只允许我传递我需要传递的信息,而不允许传递更多信息,也就是说,没有未定义的信息。