将var转换为常量javascript



是否可以将var转换为const?

在这样的场景中说:

var appname = ''
function setAppName(name) {
appname = name  // can I convert this to const now?
}

基本上,这是一个参数级别。参数需要在整个文件中都可以访问,我希望在第一次赋值后使其常量。这可能吗?

添加:如果除了创建一个包含此参数的对象之外,还有其他方法,那会更好(对于更简单的解决方案(。我将处理这样的多个参数,冻结一个对象将导致整个对象冻结。我希望在参数级别上做到这一点。

因此,要么将参数更改为常量。或者(我认为这是不可能的(将参数的范围更改为全局:

function setAppName(name) {
const appname = name  // can I change the scope and make this global?
}

谢谢。

将您的应用程序名称放入对象中并冻结它。

let appSettings = { name: "" };
function setAppName(name) {
appSettings.name = name;
Object.freeze(appSettings);
}

冻结可防止添加、删除和修改对象中属性的值,因此在设置完所有其他设置(如果要使更多变量保持不变(后,应仅调用Object.freeze一次。

您可以使用对象来完成此操作。

const globals = {
appname: ''
}
function setAppName(name) {
globals.appname = name;
Object.freeze(globals)
// After this point, value of appname cannot be modified
}

感谢您的所有投入。

我找到了一个变通办法来实现我想要实现的目标。

var appname = ''
function setAppName(name) {
if (appname === '') {
appname = name  // can I convert this to const now?
}
}

虽然这并没有将其转换为const,但我只是在setter上添加了一个保护,它现在将无法覆盖该值(除非我要再次初始化为空字符串(。

这不是愚蠢的证明,但这将满足我的需要。

谢谢大家!

最新更新