Сообщение от foo
|
Ну ты же сам говоришь, модуль оборачивается в функцию. Внутри функции должен быть объект arguments, поэтому его и влепили в глобальное окружение. Это хак, фактически, специально для подключения модулей.
|
Что за бред?
arguments не впиливали ни в какое глобальное окружение! С чего ты это взял? Придумал?
console.log( "arguments" in global ); // false - в глобальном объекте arguments нет
Nodejs использует обычный гугловский v8. Ничего никуда не впилевается. Часть ноды написана на js. Конкретно вызов того, что ты запускаешь, находится в \lib\module.js на 456 строке (исходники можно
скачать). Собственно, сам compiledWrapper можно посмотреть так:
console.log( arguments.callee.toString() );
Это выдаст:
function (exports, require, module, __filename, __dirname) {
console.log( arguments.callee.toString() );
}
Ты всё это знал? Это, между прочем, полезная инфа по ноде. И вместо того, чтобы сказать спасибо, ты строишь из себя самого умного. Не надо так!