数组中函数的用途?

时间:2014-07-31 00:18:11

标签: javascript arrays function

我是编程新手。我最近开始使用Javascript,并在其中一个主题中创建了一系列函数。我的问题是那些有用的东西是什么?我没有理解背后的想法。有人可以帮我理解吗?

更新:为了使问题更加清晰,我将使用一位同事分享的示例。假设我们有这个:

var twoDimensionalImageData = ...
    var operations = [
        function(pixel) { blur(pixel); },
        function(pixel) { invert(pixel); },
        function(pixel) { reflect(pixel); }
    ];

foreach(var pixel in twoDimensionalImageData)
     foreach(var func in operations)
        func( pixel );

这可以在不使用数组函数的情况下实现吗?或者这可以在不使用运算数组中的函数(像素)的情况下实现吗?如果是,我想了解为什么数组中的函数可以比普通函数更好。它有什么好处?

2 个答案:

答案 0 :(得分:2)

如果您想要按摩数据,我可以看到一个可用的函数数组;而不是使用函数currying和组合,只需将一系列函数应用于数据,如宏步骤。这在成像应用程序中可能很有用,可以考虑Photoshop的"动作"特征

var twoDimensionalImageData = ...
var operations = [
    function(pixel) { blur(pixel); },
    function(pixel) { invert(pixel); },
    function(pixel) { reflect(pixel); }
];

foreach(var pixel in twoDimensionalImageData)
    foreach(var func in operations)
        func( pixel );

答案 1 :(得分:1)

您可以使用函数列表作为回调列表,或者将函数用作Observer模式的侦听器(而不是对象)。

观察: 这是一个非常着名的软件设计模式。它包含一个主要对象,或者说实体,许多其他对象都感兴趣。当这个主实体改变它的属性或发生了什么事情时,它会告诉谁有兴趣(或倾听)发生了什么(以及做了什么)。

回调列表: 例如,当您发出Ajax请求(异步Javascript和XML)来更新新闻源然后您还要执行许多其他步骤时,这可能很有用。如果你有这个函数列表,你所要做的就是迭代它并调用它们。 (是的,您可以在单个函数中调用它们,但将它们保存在数组中会给它带来很大的灵活性。)

在这两种情况下,很容易“知道”你必须调用哪些函数:)