JavaScript ES6: static | ReactJS

JavaScript ES6: static | ReactJS

При работе с конструкторами в ES5 многие привыкли использовать функции, как объекты (они же и есть объекты) и вешать на них служебные функции:

Онлайн курс по React JS в Івано-Франківську

// Конструктор
var Person = function() {};

// Служебное значение
Person.hello = 'World';
// Служебная функция
Person.speak = function() {
  console.log('I am alive!');
};

Если вы с подобной реализацией никогда не сталкивались, то обратите внимание на то, чтоподобные значения не имеют ничего общего с прототипами и доступны только при запросе непосредственно с функции (объекта):

Person.speak(); // I am alive!
var john = new Person();
john.speak(); // Ошибка: нет такого метода!

При работе с классами запись подобных свойств доступна сразу внутри класса с помощью оператораstatic. Причем все записанные подобным образом свойства при наследовании благополучно переносятся на конструктор потомка:

class Person {
  static sos() {
    console.log('I really need help!');
  }
}

class Artist extends Pesron {
  draw(art) {
    console.log(`Artist has just drawn ${art}`);
  }
}

const artist = new Artist();
Person.sos(); // I really need help!
Artist.sos(); // I really need help!
artist.sos(); // artist.sos is not a function

Онлайн курс по React JS в Івано-Франківську | Frontend, обучение, уроки, ментор - ReactWarriors

Поделись знаниями: