gpt4 book ai didi

javascript - 如何用 ES6 类模拟私有(private)作用域?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:32:11 25 4
gpt4 key购买 nike

我正在尝试将我的代码从 ES5 模块迁移到 ES6 类。我当前的代码(模块,而不是类)如下所示:

var appleModule = (function() {
var yummy = true;
var publicEat = function() { }
var privateEat = function() { }

return { "eat": publicEat }
})();

上面的内容允许我创建私有(private)变量和方法,这些变量和方法不会暴露给环境中的其他 Javascript 对象/作用域。我喜欢。我想在 ES6 中我们现在有了类,所以像这样的东西变成了重构代码:

exports class appleModule {
constructor {
this.yummy = true;
}

publicEat() {

}

privateEat() {
// How to make private?
}
}

但是,没有一种好的方法可以使用这种基于类的新语法来创建私有(private)变量和函数。新的建议是将 exports 与以前的模块模式(公共(public)成员的闭包返回对象)一起使用吗?如果没有,我如何像第一个示例那样模拟私有(private)范围(希望没有下划线)?

最佳答案

I figure in ES6 we have classes now so something like this becomes the refactored code.

您的原始代码似乎代表了一个模块之类的东西。类不是模块,但 ES6 现在对模块有原生支持。所以你的代码应该更有可能变成

var yummy = true;
var publicEat = function() { }
var privateEat = function() { }

export {publicEat as eat};

并不是所有的东西都可以、已经或应该被建模为一个类。

关于javascript - 如何用 ES6 类模拟私有(private)作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324287/

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