La vérité si je mens, Babel c’est bien ! Agade ce simple code en ES6 :
'use strict'; class Vehicle { constructor(brand) { this.brand = brand; } } class Car extends Vehicle { constructor(brand,model) { super(brand); this.model = model; } } let myCar = new Car('Mercedes','300SL'); console.log(myCar);
Converti en version 5 par Babel :
'use strict'; var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var Vehicle = function Vehicle(brand) { _classCallCheck(this, Vehicle); this.brand = brand; }; var Car = (function (_Vehicle) { _inherits(Car, _Vehicle); function Car(brand, model) { _classCallCheck(this, Car); _get(Object.getPrototypeOf(Car.prototype), 'constructor', this).call(this, 'Mercedes'); this.model = model; } return Car; })(Vehicle); var myCar = new Car('Mercedes', '300SL'); console.log(myCar);
Y’a pas photo !
1 De Gilsoub -
Je me demande si je ne préfère quand il y a photo, c’est moins abstrait pour moi ;-)
2 De Franck -
Roh tout de suite, t’es exigeant quand même ! :-)
3 De mirovinben -
Babel est un superbe film avec d’excellents acteurs et un scénario sans faille.
Pour le reste, j’ai l’impression que d’apprendre le japonais est m’est plus fastoche que de décrypter tes propos. Et pourtant, j’en bave.
4 De Franck -
Faudra que je le regarde, ce film, ça m’intrigue !
5 De biou -
et sinon il parait qu’il faut quand même faire gaffe avec les classes ES6 :
https://medium.com/@dan_abramov/how…
6 De Franck -
Ah oui en effet, mais bon, j’en suis encore loin d’exposer des classes ES6 à travers une API ou une lib :-)