繁体   English   中英

如何从 Object 导出数据?

[英]How do I export data from An Object?

我正在尝试将名为 CoffeeTree 的 object 从名为 Coffee_Tree.js 的文件导出到名为 coffee.js 的 js 文件中,这样我就可以从 object 中获取数据。 但是,我不断得到这个:

未捕获的 ReferenceError:咖啡未在 Coffee_Tree.js:2 中定义

这是我到目前为止的代码,我仍然是一个 js 初学者,但我不知道该怎么办我将 html 类型更改为模块,但这没有用。 到目前为止,这是我的代码:

Coffee_Tree.js

export default coffeeTree = {
    refill: () => {
        coffee.isEmpty = false;
        console.log('refilled');
    },
    drink: () => {
        coffee.isEmpty = true;
        console.log('chug');
    },
    isEmpty: true,
}

coffee.js

import coffeeTree from './Coffee_Tree.js';

console.log(coffeeTree);

再次在控制台中,我不断收到此错误:

Uncaught ReferenceError: coffee is not defined
    at Coffee_Tree.js:2

你需要

(1) 使用正确的变量名( coffeeTreecoffee - 选择一个,不要同时使用)

(2) 默认导出的表达式不会作为标识符放入当前的 scope 中。 您当前正在隐式创建一个全局变量并在草率模式下运行。 拥有模块系统的主要目的之一是尽可能避免使用全局变量。 改用命名导出,以便 object 可以在其方法中引用自身,而无需分配给全局 object:

export const coffee = {
    refill: () => {
        coffee.isEmpty = false;
        console.log('refilled');
    },
    drink: () => {
        coffee.isEmpty = true;
        console.log('chug');
    },
    isEmpty: true,
};
import { coffee } from './Coffee_Tree.js';
console.log(coffee);

(如果可能的话,我也强烈建议使用严格模式 - 如果您阅读错误消息并尝试调试它们,它将帮助您避免此类错误)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM