这是一个包含一些环境配置的javascript文件(名为env.js
):
module.exports = {
"environment": {},
"mixpanel": {},
"google": {
"app-id": "abc"
},
}
我尝试在es6中编写的另一个javascript中以这种方式导入和使用它:
import env from '../env';
console.log(env)
在开发控制台中,我可以看到值已按预期打印:
现在我想在函数中解压缩对象:
const buildArray = () => {
const entries = [];
for (let key of env) {
for (let subkey of env[key]) {
console.log (env[key][subkey])
}
}
return entries;
};
然后我收到了这个错误:
Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_2__env___default.a[Symbol.iterator] is not a function
当我来到for (let key of env)
如果我在此之前暂停在开发者控制台并尝试检查那里的env
,我就会收到此错误
Uncaught ReferenceError: env is not defined
但如果我将env
作为参数引入函数,则错误就会消失,即
const buildArray = (env) => {
为什么会这样?全局范围内不应该env
可见吗?
答案 0 :(得分:0)
Key of Object
不起作用。它应该是Key in Object
of
关键字用于arrays
let a = [1,2,3,4]
for (let item of a) { console.log(item)} // 1 2 3 4
in
关键字适用于objects
(包括数组)
let a = [1,2,3,4]
for (let item in a) { console.log(item)} // 0 1 2 3 (the indexes)
let obj = {a:1, b:2}
for (let key in obj) {console.log (key)} // a b