JavaScript:为什么这个回调函数不起作用?

时间:2017-05-10 11:15:52

标签: javascript callback

它说:TypeError:myFunc不是函数

我希望输出为"我很高兴,哈哈!"。

我在JS中学习回调函数。

       WHERE CAST(UF.UF.InsertDateTime as DATE) = DATEADD(DAY, T.i, CAST(GETDATE() as DATE) ) AND
             UF.IsFollowed = 1 AND
             (U.IsMUser = 1 OR U.IsFUser = 1)

1 个答案:

答案 0 :(得分:1)

试试这个:

emotions("happy", laugh);

你遇到了这个问题,因为你没有传递函数本身,但它是作为参数的结果。执行laugh()时,您正在运行该函数,而不是使用它的引用,因此,您将传递它的结果。

调用将在emotions函数内执行laugh(2),这是正确的方法。

function emotions(myString, myFunc) {
    console.log("I am " + myString + ", " + myFunc(2));
}
var laugh = function(val) {
    var ha="";
    for(var i=0;i<val; i++) {
        ha=ha+"ha";
    }
    return ha;
};

console.log(emotions("happy",laugh));