我定义了一个全局变量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时,我不希望它运行,我需要传递一个参数。
我该如何实现?
后面带有()的变量,就好像使它成为一个函数并使其运行。

最佳答案

尝试使用bind

ff = f3.bind(null, "hello")



  bind()方法创建一个新函数,该函数在调用时具有
  此关键字设置为提供的值,并具有给定的顺序
  调用新函数时提供的任何参数之前的参数。

关于javascript - javascript将函数分配给变量而不运行它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36012756/

10-11 08:01