dgn*_*nin 4 javascript import ecmascript-6
我想定义一个具有共同属性的对象:
var Config = {
a: 'fsdf',
b: 56,
c: 'fsfsdfsd',
set: function set(prop, val) {
this[prop] = val;
}
};
Run Code Online (Sandbox Code Playgroud)
在另一个文件中,我想使用自定义属性扩展它:
var Config = Object.assign(Config, {
d: 34,
e: 'qqwqw'
});
Run Code Online (Sandbox Code Playgroud)
然后,我想读取和修改其他文件中的对象:
var x = Config.d + Config.b;
Config.set('a', 'asdf');
Run Code Online (Sandbox Code Playgroud)
当时,我正在使用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'}
Run Code Online (Sandbox Code Playgroud)
本文对此有更多说明。
另外,汇总项目主页上有一个不错的游乐场,可以测试es6模块的工作方式。请参阅此示例。