Me gustaría pasar el valor a los parámetros especificados y usar el valor predeterminado por parámetros opcionales para el resto.
Se hace una muestra como se muestra a continuación.
El resultado actual es 'b23'.
Pero me gustaría obtener el resultado de '1b3'.
function runThis() { test(b='b'); } function test(a='1',b='2',c='3'){ console.println(a+b+c); } También trato de ejecutar test({b:'b'}) y test({b:='b'}) , lo que resulta en SyntaxError.
Gracias por tu ayuda.
La sintaxis es ligeramente diferente:
> function test({a=1, b=2, c=3}) { console.log(a+b+c); } undefined > test({b:"b"}) 1b3 undefinedLos parámetros son posicionales en javascript: el primer parámetro siempre será 'a', el segundo 'b' y así sucesivamente.
Una forma de lograr parámetros con nombre sería cambiar la firma de la prueba de función para aceptar un objeto:
function test(obj) { const { a='1', b='2', c='3' } = obj console.log(a + b + c) }llamando a esto con
test({ b: 'b' })producirá '1b3'
Los argumentos de palabras clave no se admiten en JS, los argumentos se resuelven por su posición en JS.
En su lugar, podría pasar un objeto y desestructurar las propiedades de él y también asignar valores predeterminados.
function runThis() { test({ b: "b" }); } function test(inputObj) { const { a = "1", b = "2", c = "3" } = inputObj; console.log(a + b + c); } runThis();También puede hacer la desestructuración de manera más sucinta, como se muestra a continuación:
function test({ a = "1", b = "2", c = "3" }) { console.log(a + b + c); } Además, console.println no es una cosa en JS, puede usar console.log en su lugar.