2016-09-01 1 views

ответ

2
heroes => this.heroes = heroes; 

Есть функция, которая принимает параметр heroes и тело функции

this.heroes = heroes 

, который присваивает параметр this.heroes.

Функция стрелки имеет неявный возврат, что означает, что возвращаемое значение является результатом тела.

this.heroes = heroes 

возвращает heroes

Основное отличие заключается в том, что => вместо

function(heroes) { this.heroes = heroes; } 

гарантирует, что this. продолжает указывать на текущий экземпляр класса аналогично

(function(heroes) { this.heroes = heroes; }).bind(this) 
+0

getHeroes(): пустота {. this.heroService.getHeroes() (подписывается (функция (герои) {this.heroes = герои; console.log (this.heroes); }), ошибка = > this.errorMessage = ошибка); console.log (this.heroes); } ' В этом коде первая консоль печатает объект героев, но вторая консоль не печатает. Зачем? @Gunter –

+0

Как упоминалось 'this.'не сохраняется с' function (heroes) 'вместо' heroes => ... '. С 'function'' this.' указывает на прилагаемую функцию. –

+1

Вы забыли упомянуть, что лямбда также возвращает значение. –

0

Ваш метод отправки данных "героев, то вы кладете то в вашу переменную this.heroes (две Differents вещи)

+0

герои временно существуют, this.heroes является параметром вашего класса (Дженерали) –

+0

, но когда я упоминаю то же самое, показанный ниже, это не работает \ п 'функции (Heros) { this.heroes = heroes; return this.heroes; } '' –

0

В ES6, мы называем это Функция стрелки, которая является сокращенной версией объявления функции и в то же время связывает this внутри функции.

Его форма в синтаксисе ES5 будет:

... 
var self = this; 

function someFunction(heroes) { 

    self.heroes = heroes; 
} 
... 

Я не остальная часть вашего кода, так что я только предположить некоторые части.

В основном, когда мы используем this внутри функции, this относится к только объем внутри функции. Он переопределяет внешний диапазон this. Нам нужно будет создать ссылку на внешний this (например, self), чтобы функция имела доступ к ней.

Подробнее здесь: MDN: Arrow Functions

Смежные вопросы