gpt4 book ai didi

javascript - 揭示模块模式结合 ES6 模块

转载 作者:行者123 更新时间:2023-12-04 16:28:38 25 4
gpt4 key购买 nike

我不知道哪种方法更适合 ES6 模块和显示模块模式。来自 ES6 模块的数据/功能是否像 IIFE 一样私有(private)?

我是否应该只使用 *only ES6 模块,如下所示:

// Export file

export const test = () => {
console.log('Hello from test');
}

// Import file

import { test } from "./test.js";

test();

或者我应该将两者结合使用:
// Export file

export const revealingPattern = (function() {
function test() {
console.log('Hello from test');
}

return {
test
}
})();

// Import file

import { revealingPattern } from "./test.js";
revealingPattern.test();

最佳答案

显示模块模式的主要目的是保持数据封装,但是 ES6 模块的顶层已经是私有(private)的——其中定义的变量不会泄漏到全局范围(除非你明确地分配给全局对象,比如 window.foo = 'foo' ) .

因此,在 ES6 模块中,揭示模块模式并没有任何意义——随意在顶层定义任何你想要的东西,它会被限制在模块(并且仅限于模块),然后你可以明确 export 任何需要显示的内容(并且不会不希望显示其他内容)。

关于javascript - 揭示模块模式结合 ES6 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57197747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com