我已经定义了一个全局变量ff,然后调用f1为它分配函数f3。 当我调用f2时,f3将会运行。
var ff;
function f1() { ff=f3; }
function f2() { ff(); }
function f3() { alert("hello"); }
但如果f3采用如下参数
function f3(txt) { alert(txt); }
我调用f1将ff指定为以下
function f1() { ff=f3("hello"); }
f3将同时运行。
当我将f3分配给ff并且需要传递参数时,我不希望f3运行。 我怎样才能做到这一点? 在它之后带有()的变量就好像会使它成为一个函数并让它运行。
答案 0 :(得分:6)
答案 1 :(得分:1)
您在第二个示例中为ff
调用的值分配f3
,这就是它调用您的函数的原因。您应该像最初一样进行作业ff=f3
。然后,您可以使用参数ff("hello")
答案 2 :(得分:0)
这个怎么样?
var ff;
function f1() { ff=f3; }
function f2() { ff('hello'); }
function f3(text) { alert(text); }