簡體   English   中英

Typescript獲取函數內設置變量的名稱

[英]Typescript get name of setted variable inside a function

是否可以在函數內獲取設置變量的名稱?

public MyFunction(): any {
   //get myVarName as string;
}

var myVarName = MyFunction();

不,您無法在MyFunction()內獲取myVarName變量的名稱。

MyFunction()內部,不知道還有哪些其他變量也可能包含對MyFunction()的引用或可能包含調用MyFunction()的結果的變量。

您是否意識到這一行代碼:

var myVarName = MyFunction();

實際調用MyFunction()並執行它,但是在函數運行之后才分配myVarName嗎?

可能有零個,一個或數百個其他變量包含對被調用函數的引用。 在函數和可能包含該函數引用的變量之間沒有鏈接。 如果您需要這樣的鏈接,則必須以某種方式構建自己的數據結構來跟蹤該鏈接,然后MyFunction()可以遍歷該數據結構以查看誰對其進行了引用。 但是,每次分配參考時,您還必須修改此數據結構以跟蹤該參考。

如果不是像myVarName這樣的全局變量,而是將所有這樣的函數引用都保存在已知數組或已知對象中,則MyFunction()可以搜索該已知數組或對象並找到指向自身的所有條目。 。

與在StackOverflow上一如既往,如果您描述的是您真正要解決的問題(而不是您要尋找的特定解決方案),則可能會得到更好的建議。

不會。因為變量分配發生函數調用之后。

對於發生在堆棧調用中的任何事情,您都可以執行stacktrace:

try{
   throw new Error('Buck stops here')
}catch(e){
   console.log(e.stack) // Yea!
}

更多: http : //tobyho.com/2011/06/08/the-javascript-stacktrace-blog/

暫無
暫無

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

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