A sintaxe da “nova função”

O que há de tão novo nisso?

Bem, um exemplo nos ajudará a entender o que é essa nova Função estranha.

Vamos começar com uma definição do que é:

let func = new Function([arg1, arg2, ...argN], functionBody);

Bem, isso não explica nada. Na verdade, torna as coisas ainda piores 😑.

Ok, eu tenho você. Que tal um exemplo? Sim, pensei assim :)

let mult = new Function('f', 'g', 'return f * g')
console.log(mult(6,9)) //54

let sayBye = new Function('alert("Bye Bye Beatiful")')
sayBye() // Bye Bye Beatiful

Todas as outras declarações exigem que escrevamos o código da função no script.

Mas new Functionpermite que você transforme qualquer string em uma função.

Por exemplo, podemos receber uma nova função de um servidor e depois executá-la:

let str = … //Receive the code from a server dynamically
let func = new Function(str);
func();

Uma diferença importante com este new Functione qualquer outro functioné que o new Functionsempre se refere ao escopo global e não ao seu escopo lexical como um function.

O que isso significa é que o new Function não tem acesso 🙅🏻‍♂️ a variáveis ​​externas apenas as globais.

Além disso, é possível defini-lo da mesma forma:

new Function('f', 'g', 'return f * g') // Basic syntax
new Function('f,g', 'return f * g') // Comma-separated
new Function('f , g', 'return f * g') // Comma-separated with spaces

Suggested posts

Meus recursos de codificação mais usados

Meus recursos de codificação mais usados

Esta semana, recebi um e-mail de um membro da lista de e-mails diários. Eles queriam saber: quais recursos você visita diariamente, semanalmente e mensalmente? Ótima pergunta! Fico feliz em tentar compartilhar algumas ideias sobre meu fluxo de trabalho e os principais recursos que uso.

Série de bibliotecas lit — 1: Um mergulho profundo na biblioteca lit-html

Série de bibliotecas lit — 1: Um mergulho profundo na biblioteca lit-html

O objetivo desta série de blogs é aprofundar a biblioteca Lit e obter uma compreensão abrangente de seus recursos exclusivos e como ela se diferencia de outras bibliotecas e estruturas do mercado. A série é dividida em três partes, abordando tópicos como 1.

Related posts

That Threat Archive: Vol 7 Black Basta

That Threat Archive: Vol 7 Black Basta

No mundo interconectado de hoje, a ameaça de ataques cibernéticos é mais prevalente do que nunca. Criminosos cibernéticos e agentes de estado-nação estão constantemente buscando explorar vulnerabilidades e roubar dados valiosos, representando um risco significativo para organizações de todos os tamanhos.

Dois anos em design - O bom, o mau e o feio…

Dois anos em design - O bom, o mau e o feio…

“Ei, Siri, toque Me Dive, de Olivia Dean.” Era maio de 2021 quando comecei meu estágio na Future Academy Africa em Akure, Nigéria.

O primeiro livro de uma criança sobre como ficar chapado

O primeiro livro de uma criança sobre como ficar chapado

(Aviso - isso é sátira, com a intenção de ser alegremente subversivo - definitivamente não é para crianças) Você viu sua mãe e seu pai se esconderem na cozinha e fumarem aqueles cigarros fedorentos. Eles dizem a você.

Journal Ouvert

Journal Ouvert

Diário aberto: uma foto por dia. Sempre fui fascinado por histórias.