mozilla
Vos résultats de recherche

    import

    Cette fonction, proposition pour ECMAScript 6 (Harmony), est expérimentale
    Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
    Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

    L'instruction import est utilisée pour importer des fonctions exportées depuis un module externe ou un autre script.

    Note : Cette fonctionnalité n'est, à l'heure actuelle, implémentée dans aucun navigateur de façon native. Elle est disponible via certains transpileurs tels que Traceur Compiler et ES6 Module Transpiler.

    Syntaxe

    import nom from "nom-module";
    import { membre } from "nom-module";
    import {
    membre as alias } from "nom-module";
    import { membre1 , membre2 } from "nom-module";
    import { membre1 , membre2 as alias2 , [...] } from "nom-module";
    import nom , { member [ , [...] ] } from "nom-module";
    import "nom-module" as nom;
    nom
    Le nom de l'objet qui reçoit les valeurs importées.
    membre, membreN
    Le nom des membres exportés qui seront importés.
    alias, aliasN
    Le nom de l'objet qui recevra la propriété importée.
    nom-module
    Le nom du module à importer. Cela correspond au nom de fichier du module.

    Description

    Le paramètre nom est le nom de l'objet qui recevra les membres exportés. Les paramètres membre permettent de définir des membres individuels. La syntaxe utilisant le paramètre nom permet quant à elle d'importer tous les membres. nom peut aussi être une fonction si le module exporte un seul paramètre par défaut plutôt qu'une suite de membres. Les exemples ci-après explicitent cette syntaxe.

    Pour importe le contenu complet d'un module, on pourra utiliser le fragment de code suivant. Il permet d'insérer monModule dans la portée courante, monModule contiendra tous les éléments exportés.

    import monModule from "mon-module.js";
    import "mon-module.js" as monModule; // équivalent à l'instruction précédente

    L'instruction qui suit permet d'importer un seul membre d'un module. Ici on insère unMembre dans la portée courante :

    import {monMembre} from "mon-module.js";

    Pour importer plusieurs membres d'un module, on pourra utiliser l'instruction suivante qui insère toto et truc dans la portée courante :

    import {toto, truc} from "mon-module.js";

    Pour importer le contenu entier d'un module avec également des membres nommés, on pourra utiliser le code qui suit. Celui-ci permet d'insérer monModule, toto, et truc dans la portée courante. On notera que toto et monModule.toto sont les mêmes et que truc et monModule.truc sont également équivalents.

    import monModule, {toto, truc} from "mon-module.js";

    Il est possible d'introduire un membre avec un alias. L'instruction qui suit utilise l'alias nomCourt pour insérer le membre dans la portée courante :

    import {unNomDeMembreVraimentLongPfiouu as nomCourt} from "mon-module.js";

    Si on souhaite n'importer aucun membre mais réaliser les effets de bord d'un import, on pourra utiliser l'instruction suivante :

    import "mon-module.js";

    Exemples

    Le fragment de code qui suite permert d'importer une fonctionnalité d'un autre fichier qui permet de traiter une requête AJAX JSON.

    Voici le fichier secondaire qui définit la fonctionnalité

    // fichier.js
    function getJSON(url, callback) {
      let xhr = new XMLHttpRequest();
      xhr.onload = function () { callback(this.responseText) };
      xhr.open("GET", url, true);
      xhr.send();
    }
    
    export function getContenuUtile(url, callback) {
      getJSON(url, data => callback(JSON.parse(data)));
    }

    Et voici le fichier principal dans lequel on importe la fonctionnalité du module :

    // main.js
    import {getContenuUtile} from "fichier.js";
    getContenuUtile("http://www.exemple.com", data => {
      faireQuelqueChose(data);
    });

    Spécifications

    Spécification Statut Commentaires
    ECMAScript 6 (ECMA-262)
    La définition de 'Imports' dans cette spécification.
    En cours de validation comme recommandation Définition initiale

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple Pas de support[1] Pas de support[2] Pas de support Pas de support Pas de support
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple Pas de support Pas de support Pas de support Pas de support Pas de support Pas de support

    [1] La fonctionnalité est partiellement supportée et peut être activée grâce à une option de la ligne de commande : --harmony-modules. Voir ce bogue V8 pour plus d'informations.
    [2] Pour Firefox, voir : bug 568953.

    Note spécifique à Firefox

    Les instructions import et export faisaient partie d'une ancienne fonctionnalité de Netscape. Peu usitées, elles ont été retirées à partir de Firefox 3.5 (bug 447713).

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: teoli, SphinxKnight
    Dernière mise à jour par : SphinxKnight,
    Masquer la barre latérale