[英]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.