我在
javascript中有一个功能
function foo(callback) { console.log("Hello"); callback(); }
和另一个功能
function bar() { console.log("world"); }
我想制作一个FooBar函数
FooBar = foo.bind(this,bar);
这工作正常,但我实际上要做的是创建一个function queue,并且在绑定回调之前我经常需要绑定一个无函数参数,如下例所示
function foo() { console.log(arguments[0]); var func = arguments[1]; func(); } function bar() { console.log("world"); } foo.bind(this,"hello"); var FooBar = foo.bind(this,bar); FooBar();
这会产生这个错误
[Function: bar] TypeError: undefined is not a function
解决方法
你将“Hello”绑定到foo,然后将bar单独绑定到foo – 不应该将bar绑定到第一个绑定的结果,如下所示:
var FooHello = foo.bind(this,"hello"); var FooBar = FooHello.bind(this,bar);
Fiddle here.(记录“你好”,“世界”).