gpt4 book ai didi

javascript - 调用列表中的所有 Javascript 函数

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:15 25 4
gpt4 key购买 nike

调用列表中所有函数的最惯用方法是什么?

我能想到的最好的是:

myFunctions.forEach(function(f){f();});

有没有更惯用的方法来做到这一点?

编辑:

我现在真的只对 ES5 感兴趣。也许有一些方法与数组原型(prototype)有关?

最佳答案

ES6 呢?您可以使用 arrow function .

这将是:

myFunctions.forEach( f => f());

您今天已经可以使用类似 babel 的工具.有关 ES6 功能的概述,请查看 es6features .

编辑:

您可以使用以下方法扩展Array 对象:

Array.prototype.invokeFunctions = function () {
this.forEach(function (f) {
if (typeof(f) === "function")
f()
});
}

var functions = [
function () { console.log(1);},
function () { console.log(2);}
];

functions.invokeFunctions();
// output
1
2

但是,我认为这不是一个好主意,因为它会污染全局数组原型(prototype)。更好的想法可能是使用明确为此目的设计的对象。例如:

function FunctionList(functions) {
this.functions = functions;
}

FunctionList.prototype.callAll = function () {
this.functions.forEach(function (f) {
if (typeof(f) === "function")
f()
});
}

var functionList = new FunctionList(functions);
functionList.callAll();

我认为这是一个更好的解决方案。每次你有一个函数数组时,你都可以将它包装在一个 FunctionList 对象中。但是,在这种情况下,您将失去使用数组的所有好处,如果您想修改/访问函数数组,则必须实现 getter 和 setter 方法。

关于javascript - 调用列表中的所有 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30382287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com