Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feedback chapitre 2 #14

Closed
10 tasks done
kaelig opened this issue Oct 13, 2014 · 5 comments
Closed
10 tasks done

Feedback chapitre 2 #14

kaelig opened this issue Oct 13, 2014 · 5 comments

Comments

@kaelig
Copy link

kaelig commented Oct 13, 2014

Globalement très bon chapitre, j'ai beaucoup appris en tant que débutant !

  • [1, 2, 3].join(', ')+'… soleil'; espaces manquantes autour du +
  • explication de every, some, map, reduce… : super bien
  • explication de defineProperty : l'exemple est le meilleur jamais vu de l'histoire des livres sur JS
  • defineProperty: quand on fait cssBook.EAN13 = '978-2212136401';, la méthode set est automatiquement appelée ? C'est quoi la magie ?
  • exec devrait être test dans :

    À la manière de exec, la méthode test se contente de renvoyer un booléen si un motif a été trouvé ou non :
    /(.+)(Script)/.exec('ECMAScript');

  • "Techniquement parlant, un module est fichier JavaScript" : manque "un" entre "est" et "fichier"
  • currency-main et currency-format m'ont vraiment aide a comprendre comment marchait bind, très bons exemples !
  • __filename et __dirname semblent être interprétés en tant que italique a certains endroits
  • Dans le CSV, "Javascript the Definitive Guide": le S de Javascript devrait être capitalisé
  • " _ Et ça tombe bien, " (y'a un underscore de trop non ?)
thom4parisot pushed a commit that referenced this issue Oct 13, 2014
@thom4parisot
Copy link
Owner

Merci beaucoup pour ces feedbacks et remontées de typo.
Très cool de constater l'équilibre entre technicité et compréhensibilité :-)

Concernant cssBook.EAN13 = '978-2212136401';, c'est parce que les propriétés get et set sont des propriétés spéciales, définissant respectivement un getter et un setter.

Le getter est un appel à une propriété (console.log(cssBook.EAN13)) tandis que le setter est l'assignation d'une valeur à une propriété (cssBook.EAN13 = null). Avant l'introduction des getters/setters, le seul moyen d'ajouter un peu de logique applicative était d'avoir une

function Book(){
  this.GS1;
  this.ISBN;
}

Book.prototype.setEAN13 = function(value){  };
Book.prototype.getEAN13 = function(){  };

var b = new Book();
b.setEAN13('978-2212136401');

console.log(b.getEAN13());

Autrement dit :

  • t'avais aucun moyen de créer des propriétés dynamiques
  • t'avais aucun moyen de garantir qu'une propriété n'aie pas été mal manipulée à un instant T (car rien ne garantit qu'une personne utilise la méthode pseudo-setter)

N'hésite pas à poser d'autres questions, surtout si y'a des passages un peu flous ou approximatifs :-)

@kaelig
Copy link
Author

kaelig commented Oct 13, 2014

C'est plus clair, merci !

Si par hasard il y avait un passage là dessus dans le livre alors un petit encart près du code dans le chapitre 2 qui renvoie vers le passage approprié serait top.

@kaelig
Copy link
Author

kaelig commented Oct 13, 2014

Aussi : browserify s'occupe de faire la traduction pour les navigateurs lors de l'utilisation du pattern getter/setter?

@thom4parisot
Copy link
Owner

OK ça roule pour rendre get/set plus explicite :-) Merci !

Browserify tout seul ne convertira pas en vieux code ES3. Mais un transform peut-être.

Ceci dit j'en trouve pas là comme ça … mais TypeScript te permet de compiler vers de l'ES3. Et y'a un transform TypeScript pour browserify.

@kaelig
Copy link
Author

kaelig commented Oct 13, 2014

Ah okay c'est un truc normal en JS que je connaissais juste pas, alors ! Je ne l'ai jamais vu être utilisé dans les codebases des produits sur lesquels j'ai travaillé...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants