ОК, я немного в тупике.Как работает объект require, определенный внутри работы node.js?
Если вы откроете окно узла и тип this.require
вы получаете:
[Function: require]
resolve: [Function],
main: undefined,
extensions:
{ '.js': [Function],
'.json': [Function],
'.node': [Function] },
registerExtension: [Function],
cache: {} }
Это означает, что функция require(args)
была создана, как, скажем, require=function(){return resultOfOperation}
Потом кто-то пошел вперед и сказал: require.cache={}
Я Все ли это хорошо, но является ли кеш-объект каким-либо использованием функции require(args)
? источники requirejs вообще не упоминают об объекте кэша, поэтому мне интересно, запущен ли я в другой загрузчик модулей или это просто то, что nodejs использует для отслеживания других действий.
Вопрос, «Может/(как может) функция, которой были назначены дополнительные свойства, доступ к этим свойствам изнутри исполняемого тела кода?» (желательно без знания превосходной функции)
Примечание: я понимаю, что это возможно просто записано в движок в C++, мне просто интересно узнать, могут ли люди придумать способ сделать это в javascript
Вы смотрели на исходный код ? https://github.com/joyent/node/blob/v0.7.5/src/node.js#L453 –