Глобальные объекты

Цель

Рассотрим понятиt "глобальный объект" по отношению к Node.js

Предварительныетребования

Знание основ JavaScript.

Установить Node.js и npm

Умение работать с модулями Node.js

Что относится к глобальным объектам

В JavaScript переменные и функции, объявленные во внешней области видимости является свойствами глобального объекта, в браузере этот объект явно доступен под именем window. Это означает, что в JavaScript var something определит новую глобальную переменную. В Node.js все по-другому. Переменные и функции определенные во внешняя области видимости не являются глобальными переменными, var something внутри модуля Node.js будет локальной для этого модуля и не будет видна из других модулей.

Для того, чтобы переменная стала глобальной, ее необходимо определить, как свойство объекта global. Например

global.text = 'Text';

Теперь обратившись из любого модуля к global.text мы получим его значение.

Кроме объекта global глобальными также являются следующие объекты и классы:

  • класс Buffer используется для обработки двоичных данных;
  • console используется для печати на stdout и stderr;
  • process предоставляет информацию о текущем процессе Node.js и контролирует его

Также есть переменные, которые похоже на глобальные, но таковыми не являются. Они просто встроены в каждый модуль и существуют только в рамках этого модуля:

  • __dirname - возвращает абсолютный путь к директории, где содержится модуль;
  • __filename - возвращает абсолютный путь к файлу модуля;
  • exports - ссылка на module.exports, является его сокращенной записью;
  • module - ссылка на текущий модуль;
  • require() - функция для подключения модуля;

Практическое задание

Дополните класс Person, созданный в задании из главы Работа с модулями в Node.js, городом, где проживает пользователь. При этом если город не был передан, то он должен браться с глобальной переменной 'city'. Допишите информацию, которую выводит метод show() с использованием нового параметра.

В файле index.js добавьте инициализацию переменной 'city '.

Ссылки

results matching ""

    No results matching ""