node.js - require difference in javascript(spidermonkey) and nodejs -
in javascript(spidermonkey)
//t1.js
var a=function(){ }; a.prototype.dosomething=function(){ console("t1"); }
t.js
require ('t1.js'); var b1=new a(); b1.dosomething();
it equals:
var a=function(){ }; a.prototype.dosomething=function(){ console("t1"); } var b1=new a(); b1.dosomething();
but in node.js
t.js
require ('./t1.js'); var b1=new a(); b1.dosomething();
it reports error:
node t.js
t.js: var b1=new a(); ^ referenceerror: not defined @ object.<anonymous> (/users/mymac/js/t.js:16:12) @ module._compile (module.js:456:26) @ object.module._extensions..js (module.js:474:10) @ module.load (module.js:356:32) @ function.module._load (module.js:312:12) @ function.module.runmain (module.js:497:10) @ startup (node.js:119:16) @ node.js:906:3
your comment welcome
nodejs's module system not leak globals (unless asked to).
if need export reference it, use module.exports
such:
//t.js module.exports = a; // requiring file var = require ('./t1.js'); var b1=new a(); b1.dosomething();
keeping our global environment clean. in es6 times, done module loaders.
see this official documentation piece on modules learn more.
Comments
Post a Comment