Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.12.2015, 12:16
Новичок на форуме
Посмотреть профиль Найти все сообщения от arrowfunctions
 
Регистрация: 15.12.2015
Сообщений: 1

Вопрос про стрелочные функции
Я как то прочитал про них, было написано, что у них this лексический. Ну, я собственно подумал, что они анологичны обычным ф-циям с bind. А сейчас попробовал в ФФ, оказывается ни хрена подобного. У них this указвает на замыкание.
;(function(){
  var a = 1
  window.foo = () => alert(this.a)
}())

window.foo() // 1

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

UPD попробовал в ноде - так там они вообще ничем не отличаются от обычных функций.
Ответить с цитированием
  #2 (permalink)  
Старый 15.12.2015, 12:41
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от arrowfunctions Посмотреть сообщение
У них this указвает на замыкание.
this никакого отношения к замыканиям не имеет
Ответить с цитированием
  #3 (permalink)  
Старый 15.12.2015, 12:42
Новичок на форуме
Посмотреть профиль Найти все сообщения от arrowfunctions1
 
Регистрация: 15.12.2015
Сообщений: 2

UPD поигрался немного, вроде дошло. Это, похоже просто сахар для конструкторов. В момент инициализациии это говно просто раскрывается в обычную функцию с bind, и связывается с тем объектом, в котором инициализируется. Как то так
Test = function(){
  this.a = 1
  this.fu = () => alert(this.a)
}

test = new Test
test.fu() // 1
fu = test.fu
fu() // 1


Какое уродство однако.

Последний раз редактировалось arrowfunctions1, 15.12.2015 в 12:47.
Ответить с цитированием
  #4 (permalink)  
Старый 15.12.2015, 12:43
Новичок на форуме
Посмотреть профиль Найти все сообщения от arrowfunctions1
 
Регистрация: 15.12.2015
Сообщений: 2

Rise,
Ух ты, да ты умный оказывается?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос про анонимную функцию noname1990 Общие вопросы Javascript 6 19.06.2012 11:37
Вопрос про вставку кода на страницу demoniqus Общие вопросы Javascript 1 23.05.2012 10:26
Вопрос про сравнения san4es Javascript под браузер 4 01.04.2012 16:56
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Вопрос по функции Flex Общие вопросы Javascript 3 05.12.2008 04:03