React JS (JSX) что значит два двоеточия перед this

231
17 октября 2017, 04:39

Компонент содержит такую строку

onSubmit={::this.onAddKey}

Какое значение она несет в себе?

Answer 1

Это синтаксический сахар из ES7 для bind:
::this.onAddKey то же самое, что и this.onAddKey = this.onAddKey.bind(this)

ES7:

// Binding a function to a context
let log = ::console.log;
// Calling functions with a context
let foo = {};
function bar() {
  log(this);
}
function world(a) {
  log(this, a);
}
foo::bar();
function hello() {
  foo::world(...arguments);
}

ES5:

// Binding a function to a context
var log = console.log.bind(console);
// Calling functions with a context
var foo = {};
function bar() {
  log(this);
}
function world(a) {
  log(this, a);
}
bar.call(foo);
function hello() {
  world.apply(foo, arguments);
}

https://blog.jeremyfairbank.com/javascript/javascript-es7-function-bind-syntax/

READ ALSO
Подключение внешнего JS

Подключение внешнего JS

JS файл не вставляется, при этом из html файла скрипт работает

238
Amp подключение js

Amp подключение js

Подскажите, как на amp страницах сохранить функционал сайта ? Можно ли подключать к этим страницам свои скрипты ?

214
Отправка формы при переходе на страницу с формой

Отправка формы при переходе на страницу с формой

Имеется связка модуля и компонента в joomlaМодуль включает в себя фильтр который позволяет пользователю выбирать соотвествующие параметры

180
PHP - Использование инстроспекция/отражение в реальных задачах

PHP - Использование инстроспекция/отражение в реальных задачах

В каких реальных задачах используется инстроспекция/отражение?

189