Estoy intentando crear una función en varias líneas.
Parámetros del desafío:
- La función devuelve 'bárbaro'
- Solo 2 caracteres por línea
- 40 líneas como máximo. Sigo intentando usar una flecha gruesa para declarar mi función, pero las flechas gruesas no parecen funcionar si no las tienes conectadas.
Fuente del desafío: https://www.codewars.com/kata/multi-line-task-plus-plus-hello-world
Mi trabajo actual:
f=
(
)=>
'\
b\
a\
r\
b\
a\
r\
i\
a\
n\
s\
'
Esto funciona, pero ') =>' tiene 3 caracteres de longitud. Realmente solo quiero saber cómo es posible incluso extender la creación de una función. No puedo encontrar ninguna información en ningún lado, ya que obviamente no es muy práctico.
code-challenge
restricted-source
tips
source-layout
javascript
theNewfelll
fuente
fuente
Respuestas:
Aquí hay una solución de 38 líneas:
Crea una función utilizando el
Function
constructor, al que accede[].map.constructor
utilizando la notación de subíndice ([]['map']['constructor']
). Este es el método que JSFuck usa para crear funciones.fuente
[]['map']['constructor']
lugar de[]['sum']['constructor']
?35 líneas
Pruébalo en línea!
Utiliza el hecho de que
0
es un número, el constructor de0
esNumber
y el constructor deNumber
esFunction
.32 líneas
Pruébalo en línea!
Esto esencialmente se ejecuta
que usa la estructura IIFE . La ventaja adicional es que podemos dividir líneas en algunas partes del cuerpo de la función para reducir el recuento de líneas.
24 líneas
Pruébalo en línea!
Versión en línea:
Como todo lo que queremos es devolver una cadena, podemos escapar con un método de cadena vinculado a una cadena. Al usar
trim
, también podemos dejar de manera segura una nueva línea de inicio.fuente