Javascript 设置可通过此选项访问的动态变量。来自VueJS中的外部文件不工作

Javascript 设置可通过此选项访问的动态变量。来自VueJS中的外部文件不工作,javascript,vue.js,Javascript,Vue.js,我有一个settings.js文件,其中只包含定义: export default { maintenanceMode: 'yeahhhhh', enableRegister: false, } 为了使这些设置在我的应用程序中的任何地方都可以使用。例如,$maintenanceMode,我在我的main.js中添加了这样一个功能完美的设置: Vue.prototype.$maintenanceMode = globalSettings.maintenanceMode Vue.pro

我有一个settings.js文件,其中只包含定义:

export default {
  maintenanceMode: 'yeahhhhh',
  enableRegister: false,
}
为了使这些设置在我的应用程序中的任何地方都可以使用。例如,$maintenanceMode,我在我的main.js中添加了这样一个功能完美的设置:

 Vue.prototype.$maintenanceMode = globalSettings.maintenanceMode
 Vue.prototype.$enableRegister = globalSettings.enableRegister
for (const [key, value] of Object.entries(globalSettings)) {
  Vue.prototype['$' + key] = globalSettings[value]
  })
}
但当我尝试在main.js中这样动态分配值时:

 Vue.prototype.$maintenanceMode = globalSettings.maintenanceMode
 Vue.prototype.$enableRegister = globalSettings.enableRegister
for (const [key, value] of Object.entries(globalSettings)) {
  Vue.prototype['$' + key] = globalSettings[value]
  })
}
或者像这样:

for (const [key, value] of Object.entries(globalSettings)) {
  Object.defineProperty(Vue.prototype, '$' + key, {
    value: globalSettings[value],
  })
}
此.$maintenanceMode未定义


是否有人已经做过类似的事情,或者可以指出我的错误在哪里?

您不必这样做:

 Vue.prototype.$maintenanceMode = globalSettings.maintenanceMode
 Vue.prototype.$enableRegister = globalSettings.enableRegister
只要从settings.js文件中导入需要的常量即可:

import * as settings from './settings'
编辑>>> 始终可以将变量分配给“窗口”对象,以便全局访问它们:


但我最初提出的方法是在JavaScript中处理全局常量的广为接受的方法

你是对的,但我的主要目标是只为整个应用程序导入一次,因为它们的值将从许多不同的地方访问。主要问题是为什么我的循环不起作用。