Что означает «статический» в этом примере ES6? - PullRequest
0 голосов
/ 27 августа 2018

Этот пример взят из документации для Стимулуса. Мне удалось найти документацию по статическим методам ES6, но это не похоже на метод. Или это какая-то стенография? Почему для переменной есть «статическое» ключевое слово?

export default class extends Controller {
  static targets = [ "name" ]

  greet() {
    const element = this.nameTarget
    const name = element.value
    console.log(`Hello, ${name}!`)
  }
}

1 Ответ

0 голосов
/ 27 августа 2018

Этот синтаксис разрешен при использовании плагина babel's transform-class-properties . Эквивалент в простом javascript будет:

class MyClass extends Controller {
  greet() {
    const element = this.nameTarget
    const name = element.value
    console.log(`Hello, ${name}!`)
  }
}

MyClass.targets = ["name"];

export default MyClass

РЕДАКТИРОВАТЬ: до ES6, это будет сделано как:

var MyClass = function () {
  Controller.call(this);
};
MyClass.prototype = Object.create(Controller.prototype);
MyClass.prototype.greet = function () {
    var element = this.nameTarget
    var name = element.value
    console.log('Hello, ' + name + '!');
}
MyClass.targets = ["name"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...