Javascript 如何在annonymous函数construnction var f=function(){}中获取变量名;

Javascript 如何在annonymous函数construnction var f=function(){}中获取变量名;,javascript,servicenow,Javascript,Servicenow,我有一个如下的结构,这是伪代码。 在分配给某个函数变量的函数内部,我想获得分配给该函数的变量的实际名称 返回的预期结果将是字符串someFunction 谢谢你的专业知识 我试过这个;还没有其他线索 var someFunction = (function(){ "use strict"; var f = this.FunctionName; //dummy code return f; } 应使用someFunction字符串作为返回 var onLoad_123123= (functi

我有一个如下的结构,这是伪代码。 在分配给某个函数变量的函数内部,我想获得分配给该函数的变量的实际名称

返回的预期结果将是字符串someFunction

谢谢你的专业知识

我试过这个;还没有其他线索

var someFunction = (function(){
 "use strict"; 
var f = this.FunctionName; //dummy code
return f;
}
应使用someFunction字符串作为返回

var onLoad_123123= (function(GlideAjax,g_form,GlideDialogWindow,GlideRecord,window,document,$,jQuery,$$,$j,$F,gel,undefined){
 "use strict"; 
function onLoad_123123() {
    retun 'onLoad_123123'; //dummy code here - have to get it dynamically
}

希望这能更好地解释它

这是动态获取并返回函数名的唯一方法 是访问 函数中的arguments.callee.name

这在严格模式下不可用。如果你声明一个函数 严格来说,当您尝试访问时,解释器会出错 那是我的财产


据我所知,serviceNow中未启用use strict。所以试试这个:

console.log("internal id: " + arguments.callee.name);
console.log("internal sysId: " + g_event_handler_ids[arguments.callee.name]);

g_event_handler_id保存目录项的所有脚本。

我可以提供示例来说明为什么这是一个奇怪的问题,但在此之前,我想知道您试图解决的问题。这仍然不能解释为什么需要函数名。不太清楚哪些代码是您自己的,哪些来自您正在使用的平台/服务。不,它没有解释为什么您需要函数名。祝您好运,找到愿意帮助您改变这种态度的人。回答一个简单的问题会比攻击别人更有效率,尤其是考虑到你想从我们这里得到一些东西;线路-需要其他解决方案需要其他解决方案或更好的,其他设计。恐怕没有其他解决方案。出于良好的安全原因,在引入严格模式时删除了对被调用方和调用方属性的访问。正如@zerkms提到的,您应该重新考虑您想要实现的目标;foo;//logs foo,但const foo==>{console.logarguments.callee.name;};foo;//错误:参数不正确defined@zerkms非常有用-告诉servicenow.com