IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Babel 5.4.0 : test de la nouvelle syntaxe function bind


Sujet :

JavaScript

  1. #1
    Responsable Jeux-Concours

    Avatar de vermine
    Profil pro
    Inscrit en
    mars 2008
    Messages
    6 544
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : mars 2008
    Messages : 6 544
    Points : 79 144
    Points
    79 144
    Par défaut Babel 5.4.0 : test de la nouvelle syntaxe function bind
    Babel 5.4.0 : test de la nouvelle syntaxe function bind
    le transpilateur teste des propositions de ECMAScript 7


    Babel est un transpileur ECMAScript 6. Il transforme votre code ES6 en code ES5. Ce qui signifie que vous pouvez commencer à utiliser dès maintenant les nouvelles fonctionnalités du langage sans devoir attendre leur support par les navigateurs.

    Babel sait compiler et traduire les éléments suivants :

    • les raccourcis de fonction ;
    • les fonctions asynchrones ;
    • les classes ;
    • la destructuration ;
    • les décorateurs ;
    • let ;
    • etc.


    Mais Babel, c'est également une interaction avec d'autres outils JavaScript (ou non) comme React, NodeJS, Rails, Browserify. Etant compatible avec les principaux navigateurs, Babel peut également être étendu par divers plugins.

    Au cours des derniers mois, Babel a été bien accueilli dans plusieurs grandes communautés. On parlait de NodeJS, Rails et React mais nous pouvons également citer Ember, Backbone, AngularJS et bien d'autres. De plus, un intérêt particulier a été montré par Yahoo!, Atom, CloudFlare, etc. Notons par exemple son utilsation par Mozilla et Neflix.

    L'équipe a annoncé la sortie de la version 5.4.0.

    Elle introduit la syntaxe expérimentale du function bind avec le nouvel opérateur :: qui exécute la liaison de fonction et l'extraction de méthode. C'est l'utilisation d'une bibliothèque d'itération implémentée en tant que méthodes virtuelles :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /* ES7 */
    // Create bindings for just the methods that we need
    let { find, html } = jake;
     
    // Find all the divs with class="myClass", then get all of the
    // "p"s and replace their content.
    document.querySelectorAll("div.myClass")::find("p")::html("hahaha");
     
    /* ES6 */
    let _val;
    _val = document.querySelectorAll("div.myClass");
    _val = find.call(_val, "p");
    _val = html.call(_val, "hahaha");

    C'est également l'affichage de la valeur éventuelle d'une promise sur la console :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    /* ES7 */
    Promise.resolve(123).then(::console.log);
     
    /* ES6 */
    Promise.resolve(123).then(console.log.bind(console));

    C'est aussi l'utilisation de l'extraction pour appeler une méthode d'objet lorsque survient un événement DOM :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    /* ES7 */
    $(".some-link").on("click", ::view.reset);
     
    /* ES6 */
    $(".some-link").on("click", view.reset.bind(view));

    Attention, cette syntaxe est expérimentale et ne doit pas être utilisée pour faire quelque chose d'important. Vous trouverez de plus amples informations ici.


    D'après un article sur le blog officiel.

  2. #2
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Quelqu'un utilise Babel au quotidien sur un projet (perso/pro) ? Des retours ?
    Je pense l'utiliser sur le prochain projet perso, si quelqu'un a des conseils (quel process vous utilisez, quels outils, etc), je suis preneur !

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    novembre 2012
    Messages
    3 344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 3 344
    Points : 9 869
    Points
    9 869
    Par défaut
    Je suis partagé sur ce nouvel opérateur ::. Ça simplifie énormément la syntaxe certes, mais j'ai le sentiment que ça ne résout pas le problème de fond : la gestion du contexte d'appel est toujours aussi perturbante. Ici, les fonctions find et html du namespace jake n'ont plus de sens si elles ne sont pas appelées via cet opérateur :: ou via une instruction call/apply. C'est en quelque sorte une nouvelle "classe" de fonctions, un peu comme les générateurs ou les fonctions asynchrones. Et je trouve qu'on commence à avoir un peu trop de classes de fonctions différentes avec ES6/7.
    One Web to rule them all

  4. #4
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2013
    Messages
    1 362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 1 362
    Points : 8 574
    Points
    8 574
    Billets dans le blog
    43
    Par défaut
    Bon, même si pris isolément cette évolution de la norme ES7 est intéressante, j'ai quand même peur que JavaScript soit en train de prendre le chemin de l'élitisme (la hype du fonctionnel, après celle de POO fait aussi ses dégâts), ce qui est un comble pour un langage perclus d'inconsistances comme peut l'être JS... M'enfin, l'industrie IT n'en est plus à une contradiction près.

    Il va bientôt falloir un doctorat en Computer Science pour développer (et surtout maintenir) des sites Web. Je me marre d'avance.
    Tutoriels et FAQ TypeScript

  5. #5
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 1 476
    Points : 4 801
    Points
    4 801
    Billets dans le blog
    6
    Par défaut
    c'est sur que l'opérateur :: vas tellement foutre la merde que peut risque de l'utiliser de peur de tout foirer
    Rien, je n'ai plus rien de pertinent à ajouter

  6. #6
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2013
    Messages
    1 362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 1 362
    Points : 8 574
    Points
    8 574
    Billets dans le blog
    43
    Par défaut
    Citation Envoyé par TiranusKBX Voir le message
    c'est sur que l'opérateur :: vas tellement foutre la merde que peut risque de l'utiliser de peur de tout foirer
    Citation Envoyé par yahiko Voir le message
    Bon, même si pris isolément cette évolution de la norme ES7 est intéressante
    Tutoriels et FAQ TypeScript

Discussions similaires

  1. Résultat d'un test dans une nouvelle variable
    Par vallery dans le forum SAS STAT
    Réponses: 1
    Dernier message: 22/06/2011, 13h01
  2. Test de ma nouvelle version
    Par Antoll MA dans le forum Mon site
    Réponses: 6
    Dernier message: 26/06/2007, 22h44
  3. utiliser test pour vérifier la syntaxe d'une chaine de caractere ?
    Par italiasky dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 07/04/2007, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo