Мой сценарий заключается в том, что я изучаю внедрение кода, поэтому var / let специально отключен в функции IIFE.
Каков наилучший способ предотвратить запуск IIFE? Если я попробую этот код в моем узле REPL, переменная головки молотка окажется в глобальной области видимости. Я пытаюсь выяснить, как я могу предотвратить внедрение кода, как это. Есть ли способ преобразовать все аргументы в строку перед запуском IFFE?
function keepItLocal(input) {
console.log(input);
return input;
}
keepItLocal('test', (function IIFE() {
hammerhead = 'on the global scope';
console.log(hammerhead);
return 1
}()));
узел REPL> головка молотка
отпечатков
«в глобальном масштабе»
Я думал, что, возможно, я смогу превратить Аргументы в строку, но, похоже, JavaScript сначала оценивает IIFE.
function keepItLocal(input) {
arguments = Array(...arguments.toString());
console.log(arguments);
console.log(input);
return input;
}
keepItLocal('test', (function IIFE() {
hammerhead = 'on the global scope';
console.log(hammerhead);
return 1
}()));