怀疑时,测试自己!
自己检查一下:
function es_feature_test(f) {
var a = [1, 2, 3, 4];
try {
a[f].call(a, function () { return true; });
Logger.log("+ %s", f);
} catch (e) {
Logger.log("- %s", f);
}
}
function es_test() {
[
"any",
"every",
"fill",
"filter",
"find",
"findIndex",
"forEach",
"includes",
"indexOf",
"join",
"keys",
"lastIndexOf",
"map",
"pop",
"push",
"reduce",
"reduceRight",
"reverse",
"shift",
"slice",
"some",
"sort",
"splice"
].forEach(function (fName) {
es_feature_test(fName);
});
}
注意:此函数列表并不详尽,仅用于示例目的。
输出类似:
[16-09-05 14:48:38:843 CEST] - any
[16-09-05 14:48:38:843 CEST] + every
[16-09-05 14:48:38:844 CEST] - fill
[16-09-05 14:48:38:844 CEST] + filter
[16-09-05 14:48:38:845 CEST] - find
[16-09-05 14:48:38:846 CEST] - findIndex
[16-09-05 14:48:38:846 CEST] + forEach
[16-09-05 14:48:38:847 CEST] - includes
[16-09-05 14:48:38:847 CEST] + indexOf
[16-09-05 14:48:38:848 CEST] + join
[16-09-05 14:48:38:848 CEST] - keys
[16-09-05 14:48:38:849 CEST] + lastIndexOf
[16-09-05 14:48:38:849 CEST] + map
[16-09-05 14:48:38:850 CEST] + pop
[16-09-05 14:48:38:850 CEST] + push
[16-09-05 14:48:38:851 CEST] + reduce
[16-09-05 14:48:38:851 CEST] + reduceRight
[16-09-05 14:48:38:851 CEST] + reverse
[16-09-05 14:48:38:852 CEST] + shift
[16-09-05 14:48:38:852 CEST] + slice
[16-09-05 14:48:38:853 CEST] + some
[16-09-05 14:48:38:853 CEST] + sort
[16-09-05 14:48:38:854 CEST] + splice
另外,robd 的方法也可以正常工作,只是它只告诉您可见的方法列表。它没有告诉你:
- 他们是否真的有效(他们可以阻止访问),
- 哪些方法不可见。
所以我更喜欢我稍微更明确的方法。
比我更好的方法是实际检查功能测试用例以确保行为正确,但是......哦,好吧......
GAS 函数调用支持趣闻
这里有些奇怪:我首先使用.apply() 而不是.call()(出于习惯)的实现进行了测试,奇怪的是只有 GAS 编辑器中支持的方法显示为受支持。不过使用.call() 可以正常工作。比较奇怪。
我想要我的功能工具回来!
查看underscoreGS。