我试图做一些浏览器和nodejs服务器之间共享的js代码。要做到这一点,我只是使用这些做法:http://caolanmcmahon.com/posts/writing_for_node_and_the_browser/Nodejs引用module.exports
问题是当我想导出一个函数,而不是一个对象。在节点,你可以这样做:
var Constructor = function(){/*code*/};
module.exports = Constructor;
,以便需要时使用,你可以这样做:
var Constructor = require('module.js');
var oInstance = new Constructor();
问题是,当我尝试引用module.exports模块和使用对象该引用用我的函数覆盖它。在模块中它将是:
var Constructor = function(){/*code*/};
var reference = module.exports;
reference = Constructor;
为什么这不起作用?我不想使用简单的解决方案在干净的代码中插入一个if,但是我想明白为什么它是非法的,即使引用=== module.exports是真的。
感谢