是否可以在 javascript 的函数内部定义一个全局常量变量?

我想做这样的事情:

function defineGlobalConst(){
     const s = 10;
}

但我想从代码中的任何地方访问变量 s,因为我没有输入“const”


动漫人物
浏览 158回答 3
3回答

GCT1015

您可以像这样定义一个全局变量:在浏览器中:function defineGlobalConst(){     window.s = 10;}在节点中:function defineGlobalConst(){     global.s = 10;}如果你想让它成为一个常量,你可以使用 defineProperty 和一个 getter:Object.defineProperty(window, "s", {   get: () => 10,  set: () => { throw TypeError('Assignment to constant variable.') },});

qq_遁去的一_1

您唯一的选择是将值存储在窗口中。请确保至少为您的值命名空间,因为它可能与窗口中已有的其他内容冲突:// Create the namespace at the beginning of your program.if (!window.MY_APP) {  window.MY_APP = {};}window.MY_APP.s = 10;

MMMHUHU

使用反模式可以解决您的问题。请注意,我不提倡这种方法,但从纯粹的“你能做到吗”的角度来看,在函数中分配的任何未声明的变量默认情况下都会成为全局变量(当然这不会像你一样创建常量问过,但我想我还是会展示它):function foo(){  bar = "baz";   // implicit Global;}foo();// Show that "bar" was, in fact added to "window"console.log(window.bar);  // "baz"console.log(bar);  // "baz"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript