当我将它推送到JS数组时,为什么我的函数会执行?

swi*_*Man 0 javascript arrays jquery function

我尝试为我正在做的动画填充JS数组时遇到了这个问题....当我点击我的网页中的链接进行测试时,调用了以下Javascript函数:

function testing()
{
    var funcArray = [];
    var testFunc = function(){console.log("test function");}

    funcArray.push(function(){console.log("hello there");});
    funcArray.push(testFunc());
}
Run Code Online (Sandbox Code Playgroud)

执行此操作时,我会在JS控制台中显示"test function",但不会"hello there".为什么推送预定义的testFunc导致输出,而不是第一次推送中的内联函数?

dol*_*ldt 6

因为你在叫它.

funcArray.push(testFunc());
Run Code Online (Sandbox Code Playgroud)

调用 testFunc,然后将该调用的结果推送到funcArray.您可能想要funcArray.push(testFunc);(注意省略()),它只是将函数引用推送到该数组.