234cfds1 发表于 2017-2-21 07:30:56

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