Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Привет. Вопрос по синтаксису (https://javascript.ru/forum/misc/56421-privet-vopros-po-sintaksisu.html)

Esigns 15.06.2015 14:43

Привет. Вопрос по синтаксису
 
Привет. Вот только что увидел такой вот джаваскрипт. Интересно, что this передают вот таким способом: return () => {}. Кто-то может объяснить, или ссылку дать(не могу найти) как оно работает?

var deck = {
		suits: ["hearts", "spades", "clubs", "diamonds"],
		cards: Array(52),
		createCardPicker: function() {
			return () => {
				var pickedCard = Math.floor(Math.random() * 52);
				var pickedSuit = Math.floor(pickedCard / 13);
				
				return {suit: this.suits[pickedSuit], card: pickedCard % 13};
			}
		}
	}

	var cardPicker = deck.createCardPicker();
	var pickedCard = cardPicker();

	alert("card: " + pickedCard.card + " of " + pickedCard.suit);

tsigel 15.06.2015 15:09

Esigns,
это код который компилируется в javascript, скорее всего это coffescript или typescript.

() => {
  this.(...)
}


тоже самое что и
var _this;
function () {
  _this.(...)
}


или этот код написан на es6 и тогда он просто понимается не всеми браузерами
http://codepen.io/somethingkindawier...functions-this


Часовой пояс GMT +3, время: 23:30.