【问题标题】:Adding functions to an array向数组添加函数
【发布时间】:2014-11-20 02:15:22
【问题描述】:

此代码将函数添加到数组中:

    var fArr = []
    fArr.push(test())
    fArr.push(test())

    function test(){
        console.log('here')
    }

但是函数test() 每次添加到数组fArr 时都会被调用

函数test()可以在不调用函数的情况下添加到数组fArr吗?

我正在尝试用函数填充数组 fArr,然后遍历 fArr 并调用函数,而不是调用函数,因为它们被添加到 fArr,这是当前行为。

小提琴:http://jsfiddle.net/3fd83oe1/

【问题讨论】:

  • test() 正在执行您的功能,只需执行.push(test)

标签: javascript jquery arrays


【解决方案1】:

是的,您可以将函数添加到数组中。您实际上在做的是 invoking 函数并将函数调用的结果添加到数组中。你想要的是这样的:

fArr.push(test);
fArr.push(test);

【讨论】:

    【解决方案2】:

    很简单:

    fArr.push(test, test);
    

    示例

    var fArr = []
    
    function test() {
        return 'here';
    }
    
    
    fArr(test, test);     
    // > Array [ function test(), function test() ]
    // Because test evaluates to itself
    
    fArr(test(), test());
    // > Array [ "here", "here" ]
    // Because test() evaluates to 'here'
    

    【讨论】:

    • +1 提醒我们Array.prototype.push 接受多个参数。
    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多