说我有以下内容:
( new Function( `return function a(){ console.log('hi!'); }` ) )();
这会返回一个函数,但我希望在窗口级别使其“可调用”,而不必将其赋值给变量。
我猜这是不可能的,因为引擎处理定义的步骤已经完成了?
答案 0 :(得分:1)
假设您知道自己采用这种方法做了什么。
您可以在返回步骤之前将该函数添加到一个属性。
return (window['fn'] = function a(){ console.log('hi!'); })
( new Function( `return (window['fn'] = function a(){ console.log('hi!'); })` ) )();
fn();

.as-console-wrapper { max-height: 100% !important; top: 0; }