我目前有一个带有一系列上下文化函数的Tampermonkey脚本,我提供了这些函数作为在某个页面上运行的选项。
我的代码的一个简化版本是:
window.func1 = function func1() {...}
window.func2 = function func2(a) {...}
window.func3 = function func3(a, b) {...}我希望有一些函数,可以接受我目前的脚本,并为我提供一个可用函数的列表,类似于:
>> getAvailableFunctions()
<< func1, func2, func3我一直在使用Object.getOwnPropertyNames方法进行研究,但似乎不能用Tampermonkey来实现。
我可以输入一些信息吗?
谢谢!
发布于 2019-05-25 02:16:14
您可以尝试如下所示:
Object.entries(window).flatMap(([k, v]) => typeof v === "function" ? k : [])Object.entries获取一个键-值对数组,这里的flatMap充当组合的filter + map。这相当于:
Object.entries(window).filter(a => typeof a[1] === "function").map(([k]) => k)你也可以尝试排除像这样的原生函数(在FF和Chrome上测试):
Object.entries(window)
.flatMap(([k, v]) => typeof v === "function" && !/{\s*\[native code]\s*}/.test(v) ? k : [])https://stackoverflow.com/questions/56297659
复制相似问题