我想定义一个具有共同属性的对象:
var Config = { a: 'fsdf', b: 56, c: 'fsfsdfsd', set: function set(prop, val) { this[prop] = val; } };
在另一个文件中,我想使用自定义属性扩展它:
var Config = Object.assign(Config, { d: 34, e: 'qqwqw' });
然后,我想读取和修改其他文件中的对象:
var x = Config.d + Config.b; Config.set('a', 'asdf');
当时,我正在使用browserify以及require和modules.export语法。但是我想使用ES6语法。
我该怎么做?谢谢。
导出的变量跨模块绑定,因此您可以修改导入的值,并且它将在其他位置更改
//config.js const Config = {a: 'value1'}; export default Config; //a.js import Config from './config'; // you don't need to reassign return value, first argument will be mutated itself Object.assign(Config, {a: 'value2'}); //b.js import Config from './config'; import './a'; console.log(Config); // prints {a: 'value2'}
本文对此有更多说明。
另外,汇总项目主页上有一个不错的游乐场,可以测试es6模块的工作方式。请参阅此示例。