Typescript获取函数内设置变量的名称

Typescript get name of setted variable inside a function

本文关键字:变量 设置 获取 函数 Typescript      更新时间:2023-09-26

是否可以在函数内获得设置变量的名称?

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

不能获取MyFunction()内部的myVarName变量名

MyFunction()内部,不知道哪些其他变量也可能包含对MyFunction()的引用,或者哪些变量可能包含调用MyFunction()的结果。

你是否意识到这行代码:

var myVarName = MyFunction();

实际上调用MyFunction()并执行它,但myVarName直到函数运行后才分配?

可以有0个、一个或数百个其他变量包含对被调用函数的引用。函数和可能包含对函数引用的变量之间没有联系。如果你想要这样的链接,你必须以某种方式建立自己的数据结构来跟踪该链接,然后MyFunction()可以遍历该数据结构以查看谁有对它的引用。但是,每次分配引用时,还必须修改跟踪该引用的数据结构。

如果不是像myVarName这样的全局变量,所有这样的函数引用都保存在一个已知的数组或已知的对象中,那么MyFunction()就有可能搜索这个已知的数组或对象,并找到所有指向它自己的项。

和StackOverflow一样,如果你描述你真正想要解决的问题(而不是你正在寻找的具体解决方案),你可能会得到更好的建议。

No。由于变量赋值发生在之后,所以函数调用。

对于发生在堆栈调用上的任何事情,你都可以执行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/