Разъяснение на создании переменной в языке сценариев JavaScript

Я читаю этот фрагмент кода отсюда node-printer:

var printer_helper = {},
    fs = require("fs"),
    child_process = require("child_process"),
    os = require("os"),
    path = require("path"),
    native_lib_path = path.join(__dirname, '../build/Release/node_printer.node'),
    printer_helper;

В простой вид мне кажется, что создана переменная (или это объект...), которая называется printer_helper. Я предполагаю, что внутри этого у него есть переменные child_process, os и path что ссылаются на Ваши соответствующие модули и импортировались с require.

native_lib_path как кажется, сохраняй path, где помещен модуль node_printer_node

Не, если то, что я предположил ранее, полностью правильно, и кроме того у меня есть следующие сомнения:

  1. Для того, чтобы это первый ключ?

  2. Потому что добавляют то же имя переменной в конце концов?

1
задан 24.03.2016, 15:11
2 ответа

В простой вид мне кажется, что создана переменная (или это объект...), которая называется printer_helper

Верно. printer_helper это переменная, которая содержит пустой объект.

Я предполагаю, что внутри этого у него есть переменные child_process, вы и path, что ссылаются на Ваши соответствующие модули и импортировались с require.

Да и нет. fs, child_process, os и path они изменчивые, что инициализируются импортируя модули с require. Но эти переменные не внутри объекта в переменной printer_helper, они независимые (он замечает, как они отделяются с запятой).

native_lib_path как кажется, сохраняй path, где помещен модуль node_printer_node

Верно.

Не, если то, что я предположил ранее, полностью правильно, и кроме того у меня есть следующие сомнения:

  1. Для того, чтобы это первый ключ?

Первый ключ служит для того, чтобы показать, что printer_helper это объект.

  1. Потому что добавляют то же имя переменной в конце концов?

Это кажется ошибкой почти, потому что это не очень нужно. Поскольку ему не распределяется никакая стоимость, просто держится тот же самый, что у него было раньше ({}) и он ничего не затрагивает. Кроме того, если ты продолжаешь видеть код, который ты соединяешь, ты можешь видеть, что обе инициализации почти бесполезные, потому что следующие линии инициализируют printer_helper в новую стоимость:

if(fs.existsSync(native_lib_path)) {
    printer_helper = require(native_lib_path);
} else {
    printer_helper = require('./node_printer_'+process.platform+'_'+process.arch+'.node');
}
1
ответ дан 24.11.2019, 14:41

Сделав

var printer_helper = {}

Ты объявляешь, что printer_helper он должен содержать новый пустой объект.

Потом есть запятая',' что показывает, что ты объявляешь другую переменную.

Следующие переменные не составляют часть printer_helper, они независимые. Помни запятую.

В конце концов re заявлять printer_helper у него нет никакого эффекта. Так как язык сценариев JavaScript всегда двигает все заявления переменных в начале функции и унифицирует их, если они удвоены, автоматически и молчаливая.

Что касается

native_lib_path как кажется, сохраняй path, где помещен модуль node_printer_node

Поняли правильно

1
ответ дан 24.11.2019, 14:41
  • 1
    Извини формат я нахожусь в одном м и # 243; подлый рџ ™ ѓ – rnrneverdies 24.03.2016, 16:14