Deseo usar la Function JavaScript de función en lugar de "eval", para implementar la capacidad de usar operadores de comparación dentro de un campo de entrada de filtrado.
function test(){ let x = 5, y = 10, operator = '>'; return Function("return x" + operator + "y")(x, y); } console.log(test());El código anterior arroja un error, x, y aparecen indefinidos en la Función.
Entonces, ¿cómo puedo pasar variables externas a la función?
Cada parámetro al que se hace referencia en el cuerpo de la función debe ser un argumento principal para la función, en formato de cadena.
function test(){ let x = 5, y = 10; return Function('x', 'y', "return x>y")(x, y); } console.log(test());