Закрытия с объектами - PullRequest
0 голосов
/ 04 апреля 2020

Я читал о замыканиях, и я наткнулся на этот пример:

  var counter = (function() {
  var privateCounter = 0;
  function changeBy(val) {
    privateCounter += val;
  }

  return {
    increment: function() {
      changeBy(1);
    }
  };
})();

Таким образом, замыкание в основном:

Замыкание - это комбинация функции, объединенной вместе (прилагается) со ссылками на его окружающее состояние (лексическое окружение).

Хорошо, пока все хорошо. Но в следующем примере у нас нет функций, связанных вместе, но возвращаемый объект сохраняет ссылку на privateCounter.

Можем ли мы считать это также своего рода закрытием?

var counter = (function() {
  var privateCounter = { name: "nick" };

  return {
    name: privateCounter
  };
})();

1 Ответ

1 голос
/ 04 апреля 2020

Нет. Функция не имеет доступа к переменным из своей внешней области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...