我可以将嵌套的命名空间设计模式转换为es6模块模式吗?

问题描述

我有一个包含多个JS文件的现有代码。每个文件都将带有对象文字的新属性添加到全局名称空间。似乎许多Java开发人员都在该项目上工作,研究的模式是您最终在App.product.foo()中使用方法foo

当前(按原样)代码

// product.js
var app = app || {};
app.product = {
  changeColor = function(e) {};
  clickEventHandler = function() {
    app.cart.addToCart(e.target.dataset['code']);
  };
}

// cart.js
var app = app || {};
app.cart = {
  addToCart = function(productCode) {}
}

是否可以将其转换为ES6模块模式,以便可以跨模块导出/导入所需的代码

// product.js
import { addToCart } from './cart';

export default {
  changeColor = function(e) {};
  clickEventHandler = function() {
    addToCart(e.target.dataset['code']);
  };
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)