Importação de funções

30/07/2023

0

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?
Leandro Felipe

Leandro Felipe

Responder

Posts

02/08/2023

Diego Marinho

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 :


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 ...

Responder

02/08/2023

Diego Marinho

CORRIGINDO :

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}
Responder

02/08/2023

Diego Marinho

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;
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar