0

我只想将一个变量分配给一个函数,以便以后可以调用它,但是在这个 fiddel 中,每次按下按钮“调用”时都会调用该函数

它不应该只是将函数分配给变量'fun'而不调用警报吗?

小提琴:http: //jsfiddle.net/vkvUR/

代码 :

$("#button").click(myFun);

    <input name="Button3" type="button" value="Invoke" id="button">

    function myFun(myarg){   
        var fun = alert(myarg); 

    }  

    function myFunParam(myFun){    
        if (typeof myFun === "function")       
            myFun('foo'); // alerts "foo" 
    } 
4

3 回答 3

2

您需要分配一个匿名函数来fun包含您的alert呼叫。


改变:

var fun = alert(myarg); 

至:

var fun = function(){
   alert(myarg); 
}

http://jsfiddle.net/Curt/vkvUR/1/

这是一个版本调用fun()

http://jsfiddle.net/Curt/vkvUR/2/

于 2012-06-19T10:45:29.677 回答
0

如果您想稍后使用变量,请更改var fun = alert(myarg);var fun = function(){alert(myarg)};fun

于 2012-06-19T10:48:12.793 回答
0

alert(myFun)调用然后导致弹出的警报方法。也许你的意思是这样的。当您将参数传递给函数名称后括号内的函数时,它将被调用。要引用函数而不调用它,请忽略参数。

​var foo = alert;
foo("bar")​​​​​​​​​​​; //alerts "bar"
于 2012-06-19T10:54:18.813 回答