Показать сообщение отдельно
  #49 (permalink)  
Старый 30.06.2014, 01:54
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от 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() );
}

Ты всё это знал? Это, между прочем, полезная инфа по ноде. И вместо того, чтобы сказать спасибо, ты строишь из себя самого умного. Не надо так!
Ответить с цитированием