簡體   English   中英

以編程方式在運行時檢查變量是否為 JavaScript 中的 const?

[英]Programmatically check in runtime whether variable is const in JavaScript?

是否有可能在運行時以編程方式知道變量在 JS 中是否為 const?

例如:

const a = {};
const b = 5;

var c = {};
var d = 6;

var e = a;
var f = b;
var g = c;
var h = d;

isConst(a); // true
isConst(b); // true
isConst(c); // false
isConst(d); // false
isConst(e); // false
isConst(f); // false
isConst(g); // false
isConst(h); // false

我什至不知道如何解決這個問題,假設我不想使用外部工具(來自 JS 運行時環境之外),或者類似 eval() 的東西。

也許可以通過 JavaScript 的Proxy()Reflect()以某種方式實現?

如果沒有在不對檢查的代碼/模塊/函數/塊本身進行更改的情況下確定是否為 const 的解決方案,我也許可以接受需要對代碼/函數進行一些裝飾性/包裝修改的解決方案。

也許是解析包含 function 主體的字符串化文本的Function()原型字段的東西?

也許我們可以在這里利用異常? 例如,捕獲當您嘗試操作常量變量時引發的異常,並使用它來了解情況?

只要您將原始值移交給 function 或另一個變量,您就會得到這個值而不是變量,這是一種聲明。

為了得到想要的,Javascript 需要每個類型的實現來檢查可變性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM