Size: a a a

Front-end developers

2020 June 04

VZ

Vasiliy Zozulya in Front-end developers
источник

MP

Maksym Pohribniak in Front-end developers
Vasiliy Zozulya
короче писюнчики, объясняю всем. То что вы делаете со стрелочными функциями это новая фича вроде бы из es2017. Хз везде ли будет работать без бабеля, но не суть. Когда вы пишите свойство класса через стрелочную функцию
class User {

 constructor(name) {
   this.name = name
 }
 sayHello = () => this.name
}

это тоже самое что
class User {
  constructor (name) {
     this.name = name;
     this.sayHello = () => {
             return this.name;
     };
   }
}

и это полное говно, потому что классы наследники не смогут наследовать через супер данные функции. Они будут инициализироваться только через конструктор и их не будет в прототипе.
короче, писюнчик
источник

MP

Maksym Pohribniak in Front-end developers
все что ты написал - не верно
источник

VZ

Vasiliy Zozulya in Front-end developers
Maksym Pohribniak
все что ты написал - не верно
ну давай
источник

MP

Maksym Pohribniak in Front-end developers
стролочная функция бабелем превращается не в то что ты указал
источник

MP

Maksym Pohribniak in Front-end developers
а примерно в это

var User = function User(name) {
 var _this = this;

 _classCallCheck(this, User);

 _defineProperty(this, "sayHello", function () {
   return _this.name;
 });

 this.name = name;
};
источник

VZ

Vasiliy Zozulya in Front-end developers
Maksym Pohribniak
а примерно в это

var User = function User(name) {
 var _this = this;

 _classCallCheck(this, User);

 _defineProperty(this, "sayHello", function () {
   return _this.name;
 });

 this.name = name;
};
хаахахахахах
источник

MP

Maksym Pohribniak in Front-end developers
и наследники могут использовать, и this работает
источник

VZ

Vasiliy Zozulya in Front-end developers
Maksym Pohribniak
а примерно в это

var User = function User(name) {
 var _this = this;

 _classCallCheck(this, User);

 _defineProperty(this, "sayHello", function () {
   return _this.name;
 });

 this.name = name;
};
окей я тебя поньял 😂
источник

VZ

Vasiliy Zozulya in Front-end developers
давай еще миллионов пресетов использовать, чтобы функции транспилировать до ie6
источник

IH

Ivan Hrynevytskyi in Front-end developers
Vasiliy Zozulya
давай еще миллионов пресетов использовать, чтобы функции транспилировать до ie6
источник

NM

Niccolo Machiavelli in Front-end developers
class User {

 constructor(name) {
   this.name = name
 }

 sayHi() {
   return `Hi, ${this.name}`
 }
 sayHello = () => this.name
}


class Author extends User {
 constructor(name) {
   super(name)
 }
}

const me = new Author('Jhon')


console.log(me.sayHello())
//  Jhon
источник

VZ

Vasiliy Zozulya in Front-end developers
Maksym Pohribniak
и наследники могут использовать, и this работает
я написал во что она транспилируется с es2017 и stage-2
источник

MP

Maksym Pohribniak in Front-end developers
в vanilla js работать не будет, да
но кто сейчас пишет ES6 без бабеля?
в проде - никто
источник

IH

Ivan Hrynevytskyi in Front-end developers
Maksym Pohribniak
в vanilla js работать не будет, да
но кто сейчас пишет ES6 без бабеля?
в проде - никто
Что ты подразумеваешь под ванилой
источник

IH

Ivan Hrynevytskyi in Front-end developers
Es3/es5?
источник

MP

Maksym Pohribniak in Front-end developers
чистый js
источник

IH

Ivan Hrynevytskyi in Front-end developers
Или одноименный рофлофреймворк
источник

VZ

Vasiliy Zozulya in Front-end developers
Maksym Pohribniak
в vanilla js работать не будет, да
но кто сейчас пишет ES6 без бабеля?
в проде - никто
я же с бабелем сделал - es2017 stage-2
источник

MP

Maksym Pohribniak in Front-end developers
неважно какая спецификация
источник