我有变量app.js:
var G = {};
module.exports = G;
var DATA = G.DATA = 'DATA';
var F1 = G.F1 = function(val)
{
return val;
};
这样我就可以导出对象下的变量G,同时可以DATA不加G.前缀直接写访问变量。
到现在为止还挺好。
现在,我想对in进行测试:app.jstest.js
var G = require('./app.js');
console.log(G.DATA); // -> DATA
这有效,但我也想直接访问变量DATA而不使用G.前缀,例如console.log(DATA); // -> DATA
当然,我可以这样做
var DATA = G.DATA;对于每个变量(属性)导出和需要的moduleG对象,但显然将每个变量手动添加到测试文件以对应G对象是一个繁琐的过程。
有没有办法自动执行此操作?
到目前为止,我很悲观,因为
JSfunction包含var在自己的范围内,所以理论上没有办法var为每个对象属性提供一个辅助函数。
谢谢。
附注。我想避免任何eval或VM节点解决方案。我过去尝试过它们,但问题太多。