亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以在 javascript 的函數內部定義一個全局常量變量?

是否可以在 javascript 的函數內部定義一個全局常量變量?

動漫人物 2023-04-20 10:42:28
我想做這樣的事情:function defineGlobalConst(){      const s = 10; }但我想從代碼中的任何地方訪問變量 s,因為我沒有輸入“const”
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

您可以像這樣定義一個全局變量:


在瀏覽器中:


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.') },

});


查看完整回答
反對 回復 2023-04-20
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

您唯一的選擇是將值存儲在窗口中。請確保至少為您的值命名空間,因為它可能與窗口中已有的其他內容沖突:


// Create the namespace at the beginning of your program.

if (!window.MY_APP) {

  window.MY_APP = {};

}


window.MY_APP.s = 10;


查看完整回答
反對 回復 2023-04-20
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

使用反模式可以解決您的問題。請注意,我不提倡這種方法,但從純粹的“你能做到嗎”的角度來看,在函數中分配的任何未聲明的變量默認情況下都會成為全局變量(當然這不會像你一樣創建常量問過,但我想我還是會展示它):


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"


查看完整回答
反對 回復 2023-04-20
  • 3 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號