当前位置:  开发笔记 > 编程语言 > 正文

导出对象,在ES6中扩展并重新导出它

如何解决《导出对象,在ES6中扩展并重新导出它》经验,为你挑选了1个好方法。

我想定义一个具有共同属性的对象:

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语法。

我该怎么做?谢谢。



1> just-boris..:

导出的变量跨模块绑定,因此您可以修改导入的值,并且它将在其他位置更改

//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模块的工作方式。请参阅此示例。

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有