emilov
@emilov
Фрилансер

На что ссылается this в callback функции?

Есть вот такой код
class Foo {
	constructor () {
	}

	get (fn) {
		fn()
	}
}

var obj = new Foo()

obj.get(function () {
	console.log(this)
})


Почему this ссылается на window, ведь он же находится внутри обьекта obj
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
ChingizMuellim
@ChingizMuellim
FrontEnd, Вёрстка.
Во первых у вас в коде ошибка, не надо показывать fn как функцию заранее, она привет к TypeError. Во вторых, так не сработает, если фунция внешняя ее надо привязать с помощю методов(call, bind). Приведу привем основоваясь на твоем же коде.
class Foo {
  constructor (name) {
    this.name = 'Шрек'
  }

  get (fn) {
    fn
  }
}

var obj = new Foo()

obj.get(function () {
  console.log(this.name)
}.call(obj))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы