在不提供名称的情况下从字符串添加新功能

时间:2018-02-25 01:39:55

标签: javascript scope

说我有以下内容:

( new Function( `return function a(){ console.log('hi!'); }` ) )();

这会返回一个函数,但我希望在窗口级别使其“可调用”,而不必将其赋值给变量。

我猜这是不可能的,因为引擎处理定义的步骤已经完成了?

1 个答案:

答案 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; }




相关问题