cobrano1 发表于 2013-1-29 08:46:09

NodeJs notebook

学习了一段时间比较火的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 目录
页: [1]
查看完整版本: NodeJs notebook