我定义了一个全局变量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/