Importação de funções
Olá!
Estou estudando JavaScript com o Node.js.
Tenho experiência com a linguagem Java, apesar da lógica ser parecida, estou enfrentando problemas com a sintaxe.
Tenho dois arquivos:
- Calc.js
- soma.js
Consegui fazer a importação de um array de objetos, porém, estou com problemas para fazer importação de várias funções.
Como eu consigo, acessar as funções do arquivo soma dentro do arquivo calc?
Uma importação do tipo: calc.soma(); calc.divisão();
Estão no mesmo diretório.
Tenho uma base de sintaxe, mas esta ocorrendo erros.
Não estou usando .html. A integração é apenas nos arquivos .js.
Estou usando o node.
Alguem por gentileza, poderia me ajudar?
Estou estudando JavaScript com o Node.js.
Tenho experiência com a linguagem Java, apesar da lógica ser parecida, estou enfrentando problemas com a sintaxe.
Tenho dois arquivos:
- Calc.js
- soma.js
Consegui fazer a importação de um array de objetos, porém, estou com problemas para fazer importação de várias funções.
Como eu consigo, acessar as funções do arquivo soma dentro do arquivo calc?
Uma importação do tipo: calc.soma(); calc.divisão();
Estão no mesmo diretório.
Tenho uma base de sintaxe, mas esta ocorrendo erros.
Não estou usando .html. A integração é apenas nos arquivos .js.
Estou usando o node.
Alguem por gentileza, poderia me ajudar?
Leandro Felipe
Curtidas 0
Respostas
Diego Marinho
30/07/2023
Amigão, precisaria verificar antes uma coisa...
Há dois tipos de instruções p/ fazer esse tipo de coisa -> via "require" e via "import".
O "require" é a forma antiga de fazer isso que vc pretende e o "import" é a forma mais atualizada.
Dentro destas duas instruções, há uma série de formas de fazer esse tipo de importação.
Vou te dar um exemplo em cada tipo de instrução :
PRIMEIRO PELO "IMPORT"
Vamos supor que temos dois arquivos.
soma.js
calc.js
--------------------------------------------------------------
no arquivo calc.js só temos o código seguinte :
---------------------------------------------------------------------
No arquivo soma.js temos uma function de somar valores :
estou usando uma function com reduce , mas poderia ser qualquer outra função ou classe
-----------------------------------------------------------------------
Agora como eu importaria ?
No final do arquivo soma.js eu acrescentaria um export{ soma }
---------------------------------------------------------------
Já no arquivo calc.js eu usaria o "import" da seguinte forma
OBS 1 :
Estou colocando um ponto antes da barra "./", por supor que o arquivo está na mesma pasta,
se não estiver provavelmente levará dois pontos antes da barra.
OBS 2 :
Dentro das chaves após o "import" o nome do importado deve igual ao nome do exportado no arquivo soma.js.
-----------------------------------------------------------------------
O soma já está disponível.
Como você quer chamar a partir do calc, como no exemplo dado calc.soma(), eu te aconselho a usar o prototype... ficaria assim :
Caso você queira chama mais de uma função do outro arquivo vc deve fazer o seguinte :
Vamos imaginar agora outros dois arquivos o calc.js e o operacoes.js
Você conseguiria importar todas as operações da seguinte formar :
Me alonguei muito, vê se vc consegue fazer isso usando "import" , caso vc esteja usando "require", ai vc me diz que eu explico ...
Há dois tipos de instruções p/ fazer esse tipo de coisa -> via "require" e via "import".
O "require" é a forma antiga de fazer isso que vc pretende e o "import" é a forma mais atualizada.
Dentro destas duas instruções, há uma série de formas de fazer esse tipo de importação.
Vou te dar um exemplo em cada tipo de instrução :
PRIMEIRO PELO "IMPORT"
Vamos supor que temos dois arquivos.
soma.js
calc.js
--------------------------------------------------------------
no arquivo calc.js só temos o código seguinte :
class calc { }
---------------------------------------------------------------------
No arquivo soma.js temos uma function de somar valores :
function somar( ...numeros){ return numeros.reduce( ( a, b )=> a+b, 0) }
estou usando uma function com reduce , mas poderia ser qualquer outra função ou classe
-----------------------------------------------------------------------
Agora como eu importaria ?
No final do arquivo soma.js eu acrescentaria um export{ soma }
function somar( ...numeros){ return numeros.reduce( ( a, b )=> a+b, 0) } export
---------------------------------------------------------------
Já no arquivo calc.js eu usaria o "import" da seguinte forma
import from './somar' class calc { }
OBS 1 :
Estou colocando um ponto antes da barra "./", por supor que o arquivo está na mesma pasta,
se não estiver provavelmente levará dois pontos antes da barra.
OBS 2 :
Dentro das chaves após o "import" o nome do importado deve igual ao nome do exportado no arquivo soma.js.
-----------------------------------------------------------------------
O soma já está disponível.
Como você quer chamar a partir do calc, como no exemplo dado calc.soma(), eu te aconselho a usar o prototype... ficaria assim :
import from './somar' class calc { } calc.prototype.somar = somar // AQUI VC INCORPORARIA A FUNÇÃO SOMA PRA DENTRO DA SUA CLASSE let calculadora = new calc() // AQUI VOCE DARIA UM "NEW" , IGUAL A JAVA let armazendoValor = calculadora.somar(1,2,3) // AQUI VC CONSEGUIRIA CHAMAR O SOMA APATIR DO CALC console.log( armazendoValor ) //IMPRIMENDO VALOR NO CONSOLE
Caso você queira chama mais de uma função do outro arquivo vc deve fazer o seguinte :
Vamos imaginar agora outros dois arquivos o calc.js e o operacoes.js
Você conseguiria importar todas as operações da seguinte formar :
//operacoes.js function somar( ...numeros){ return numeros.reduce( ( a, b )=> a+b, 0) } function subtrair( ...numeros){ return numeros.reduce( ( a, b )=> a+b, 0) } function dividir( ...numeros){ return numeros.reduce( ( a, b )=> a+b, 0) } function multiplicar( ...numeros){ return numeros.reduce( ( a, b )=> a+b, 0) } export{somar, subtrair, dividir, multiplicar}
//calc.js import {somar, subtrair, multiplicar, dividir } from './soma' class calc { }
Me alonguei muito, vê se vc consegue fazer isso usando "import" , caso vc esteja usando "require", ai vc me diz que eu explico ...
GOSTEI 0
Diego Marinho
30/07/2023
CORRIGINDO :
Bugou e não saiu uma parte do código do export, que é export
Esqueci de trocar os operadores e deixei tudo somando, mas claro é assim :
Bugou e não saiu uma parte do código do export, que é export
function somar( ...numeros){ return numeros.reduce( ( a, b )=> a+b, 0) } export // AGORA TÁ CERTO
Esqueci de trocar os operadores e deixei tudo somando, mas claro é assim :
//operacoes.js function somar( ...numeros){ return numeros.reduce( ( a, b )=> a+b, 0) } function subtrair( ...numeros){ return numeros.reduce( ( a, b )=> a-b, 0) } function dividir( ...numeros){ return numeros.reduce( ( a, b )=> a/b, 0) } function multiplicar( ...numeros){ return numeros.reduce( ( a, b )=> a*b, 0) } export{somar, subtrair, dividir, multiplicar}
GOSTEI 0
Diego Marinho
30/07/2023
O somar entre chaves após a palavra export, é apagada toda vez que eu coloco... é um bug do site... quando após o export tem a palavra somar entre chaves;
GOSTEI 0