Partage
  • Partager sur Facebook
  • Partager sur Twitter

Plusieurs scripts avec fonctions ayant même nom ?

Namespace ?

Sujet résolu
17 juillet 2019 à 19:11:20

Closed

-
Edité par floutime 17 juillet 2019 à 20:13:49

  • Partager sur Facebook
  • Partager sur Twitter
17 juillet 2019 à 19:32:04

En gros ce que tu essaye de faire c'est le principe des modules et du import export. Soit tu ne gère que des navigateurs le proposant, soit tu utilise un outils de module bundler qui permet de réunir les scripts en un seul mais qui permet de faire du lazy loading si tu as besoin de charger un script que quand tu en a besoin.

Voici un exemple en utilisant les fonctionnalité de base du navigateur :

Fichier index.html :

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Module</title>
</head>
<body>
    
    <script src="/app.js" type="module"></script>
</body>
</html>

Fichier script_a.js :

export default {
    foo () {
        console.log('methode foo() depuis script_a.js')
    }
}

Fichier script_b.js :

export default {
    foo () {
        console.log('methode foo() depuis script_b.js')
    }
}

Fichier app.js :

import a from './script_a.js'
import b from './script_b.js'

a.foo()
b.foo()

Ce code si tu as besoin de l'avoir dans un navigateur ancien il te faudra comme précisé au dessus un outils pour comprendre et générer un seul fichier js final comme webpack.

Lien de la doc sur le import / export : 

-
Edité par quenti77 17 juillet 2019 à 19:33:22

  • Partager sur Facebook
  • Partager sur Twitter
17 juillet 2019 à 19:41:09

Merci pour ta réponse j'avance déjà un peu grâce à toi. 

Cependant, j'ai oublié de préciser que je suis obligé de passer par la fonction :

$.getScript('script_a.js');



-
Edité par floutime 17 juillet 2019 à 19:48:29

  • Partager sur Facebook
  • Partager sur Twitter
18 juillet 2019 à 12:24:26

@floutime pourquoi ça?
  • Partager sur Facebook
  • Partager sur Twitter
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\