ES6重新导出的值被封装到Getter中
ES6 re-exported values are wrapped into Getter
有人能给我解释一下吗?假设我有这两个模块:
// moduleTwo.js
export const module2Func = () => {
return 2
}
和
// moduleOne.js
export * from './moduleTwo'
export const module1Func = () => {
return 1
}
然后我在某个地方导入moduleOne:
import * as final from './moduleOne'
console.log(final)
然后最终结果变成这样:
{ module2Func: [Getter], module1Func: [Function: module1Func] }
为什么module2Func
被包裹成Getter
?语法做到这一点的是export from
吗?所有功能均按预期工作。我正在使用Babel 6来编译代码。
谢谢你的任何解释!
这是Babel为正确实现模块导入的引用绑定所做的工作。您可以查看编译后的输出。
输入:
export * from 'foo';
输出:
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _foo = require('foo');
Object.keys(_foo).forEach(function (key) {
if (key === "default") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _foo[key];
}
});
});
相关文章:
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 查看JS对象的所有键,甚至是getter定义的键
- "实例范围”;TypeScript类的getter/setter
- AngularJS中的封装窗口全局变量
- 闭包如何具体化数据封装
- 使用解析为javascript源的.php,如何使用条件语句将javascript代码封装在php括号之间
- 重写不带defineProperty的对象getter
- 在函数调用中封装数据除了隐藏数据之外还有什么优点
- 电子构建器与电子封装器
- 将两个express应用程序封装在一个应用程序中
- 试图封装$.getJSON和RequireJS
- 在JSX中围绕React组件封装高阶组件(HOC)
- 如何防止在javascript中执行继承属性的getter-setter方法
- 以最封装的方式封装/封装ScalaJS react js组件(react stick)
- JS在封装对象中查找键值对
- React.js错误;相邻的JSX元素必须被封装在一个封闭标记“中;
- 如何在多个控制器之间封装设置$scope值
- js添加封装来修改属性值
- 将JS封装到GWT单元格表中
- ES6重新导出的值被封装到Getter中