我在中有变量app.js:
var G = {};
module.exports = G;
var DATA = G.DATA = 'DATA';
var F1 = G.F1 = function(val)
{
return val;
};
通过这种方式,我可以导出对象下的变量G,同时可以直接写入变量DATA而无需G.前缀。
到现在为止还挺好。
现在,我想运行一个测试了app.js在test.js:
var G = require('./app.js');
console.log(G.DATA); // -> DATA
这可行,但是我也想直接写DATA没有G.前缀的变量来访问变量console.log(DATA); // -> DATA
当然可以
var DATA = G.DATA;对于每个变量(属性)导出和所需的模块G对象,但显然,将每个变量手动添加到测试文件以对应G对象是一个繁琐的过程。
有什么办法可以自动执行此操作?
到目前为止,我很悲观
JS function包含var在自己的范围内,因此从理论上讲,没有办法var为每个对象属性都提供一个辅助函数。
谢谢。
PS。我想避免任何eval或VM节点解决方案。我过去曾经尝试过,但问题太多了。
Cats萌萌
慕田峪7331174
相关分类