Por ejemplo:
function mf(z, xc, lol = b) { // I need lol = azazaz let b = azazaz ... } En lugar de lol = azazaz , obviamente obtengo b is not defined .
Que puedo hacer:
function mf(z, x, c, lol = "b") { //parameter lol is a string let b = azazaz lol = eval(lol) //now lol = azazaz ... }También puedo hacer esto:
function mf(z, x, c, lol) { //parameter lol doesn't have default value b = azazaz if (lol == 0) { lol = b //default value of lol = azazaz } ... }Pero el primero parece tan poco profesional, el segundo tiene una declaración if adicional que tampoco quiero. ¿Hay alguna manera mejor de hacer esto?
Si definir la variable dentro de la función no es un requisito difícil, probablemente pueda aprovechar los cierres para hacer algo como:
const b = 'azazaz'; function mf(z, x, c, lol = b) { ... } O tal vez use 'OR' para evitar if
function mf(z, x, c, lol) { //parameter lol doesn't have default value let b = 'azazaz'; lol = lol || b; ... }Si necesita cambiar el parámetro y reutilizarlo, debe volver a llamar a la función como:
//every time function change lol and recall function function mf(z, x, c, lol) { console.log('lol now is: ' + lol); lol++; if (lol <= 10) { mf(1, 2, 3, lol); } } mf(1, 2, 3, 0);