Задать вопрос
@asdz

Как сменить scope функции?

(function(window){
  var somevar =[];
  window.x = function  () {
  //
  //
  }
  x.y = function() {
    // имеем доступ к somevar
  }
})(window);

var newy = function () {
  // отсюда тоже хотим работать с somvar
}
//делаем
x.y=newy;
  • Вопрос задан
  • 2325 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@IceJOKER
Web/Android developer
Объявите переменную вне блока selfExecutingFunction
Ответ написан
copal
@copal
𝄞 ...оооо baby
// на это замыкание не ведет ни одной ссылки.
(function(window){
// someVar не является частью замыкания.
// чтобы somevar относилась к полю замыкания
// её нужно объявить с контекстом this.
// То есть 
// this.somevar =[];
  var somevar =[];

  // свойство x не является частью замыкание,
  // так как объявлено с контекстом window.
  window.x = function  () {
  //
  //
  }
  x.y = function() {
    // имеем доступ к somevar
  }
})(window);

var newy = function () {
  // отсюда тоже хотим работать с somvar
}
//делаем
// таким образом невозможно обратится к 
// области видимости замыкания, так как 
// ссылка на функцию х не имеет никакого отношения 
// к этому самому замыканию. Оно объявленно в window.
x.y=newy;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы