NodeJs notebook

汪泓
2023-12-01

学习了一段时间比较火的NodeJS,  记录一下我的问题和我理解的答案。

 

1.  为什么一个module中的this 不是global对象 而是 exports ? require是怎么实现的?

我试着用javascript  实现一个自己require 函数, 输入代码字符串,得到一个exports对象

 

 

function myRequire(content){
    var exports = {};
    function run(){
        eval(content);
    };
    run.call(exports);
    return exports;
}
var script =
    "exports.add = function(a,b){return a+b;};" +
        "console.log(this);";
var add = myRequire(script).add;
console.log(add(2,2));
 

2012年6月7日

 

2.  require 函数的加载顺序?

绝对和相对路径加载:   如果没有写明扩展名, 按  .js  -->  .node (已编译node插件) 用 dlopen加载

只是模块名:  核心模块(lib/) --> 各级目录中的 node_modules  (就近原则)

                             如果已经在node_modules ,  而且没有找到的话 , 只找上层node_modules 目录

 类似资料:

相关阅读

相关文章

相关问答