Как получить имя переменной в анонимной функции construnction var f = function () {}; - PullRequest
0 голосов
/ 26 марта 2019

Итак, у меня есть конструкция, как показано ниже (это фиктивный код).Внутри функции, назначенной переменной someFunction, я хотел бы получить фактическое имя переменной, которой назначена эта функция.

Ожидаемым результатом возврата будет строка "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
}

Надеюсь, что это объясняет лучше

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Единственный способ получить и вернуть имя функции " динамически " - это получить доступ к arguments.callee.name из функции.

Это не будет доступно в строгом режиме.Режим.Если вы объявите функцию как строгую, ваш интерпретатор выдаст ошибку при попытке доступа к этому свойству.

0 голосов
/ 27 марта 2019

Насколько я знаю, "использовать строгое" не включено в serviceNow.Попробуйте это:

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

g_event_handler_ids содержит все сценарии для элемента каталога.

...