在JavaScript中绑定回调函数? (不要与Function.prototype.bind()混淆)

| 我一直将脚趾插入Javascript中,现在看下面的代码:
    var router = new(journey.Router)({  
    ...
    });

    router.root.bind(function (res) { res.send(\"Welcome\") }); 
问题:上面绑定的根函数是什么?此绑定有什么作用? 我知道\'bind()\'应该将函数的执行作为上下文绑定到指定的对象。我不明白如何将一个函数/方法绑定到另一个函数。我看过的所有参考都在谈论绑定到对象。     
已邀请:
        \'root \'是在trip.js(第145行)中定义的getter方法,
get root() {
    return this.get(\'/\');
},
这只是权宜之计
get(\'/\')
在这种情况下,绑定调用会将提供的回调函数与定义为root的路由相关联,这样,与根路径(\'/ \')匹配的任何请求都将由字符串\'Welcome \'回答。 更新 在进一步研究了travel.js源代码之后,看来在这种情况下使用bind()根本不是示例。 而是将此特定的bind()定义为第131行的trip.js中route()返回的对象的函数(依次由get()调用),并且仅用于设置(或绑定)处理程序针对特定路线。 重要说明:对bind()的此调用与Function.prototype.bind()不同。 我将先前的答案留在下面,因为我相信在这种情况下,有关咖喱的信息仍然有价值。 Function.prototype.bind()的这种用法称为\'currying \',用于提供一个新函数,该函数已经为其一个或多个预期参数提供了值。 一个简单的例子是:     函数addSome(amount,value){       返回值+金额;     } 可以使用它来产生新功能:     var addOne = addSome.bind(1); 并与以下内容完全相同:     函数addOne(value){       返回addSome(1,value);     } 咖喱是[功能编程]的一项功能。 有关bind()的说明,请参见[bind-MDN Docs];有关此技术的正式定义,请参见[currying]。 [函数式编程]:http://zh.wikipedia.org/wiki/Functional_programming [绑定-MDN文档]:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind [currying]:http://en.wikipedia.org/wiki/Currying     
        对您使用的对象并不完全熟悉,但是它正在使用javascript \“匿名函数\”创建一个包含大量代码的对象,因此可以像变量一样传递它。稍后可以通过将()附加到末尾来调用它。 参见:http://helephant.com/2008/08/23/javascript-anonymous-functions/ 这种事情的最常见用法可能是用于设置回调函数,也就是说,当您在路由器上调用某个函数时,当该函数完成时,它将首先通过调用您绑定到该函数的函数来完成。 假设我正在使用通用JavaScript库(例如colorbox)在屏幕上弹出一个对话框,并提示用户输入信息。一旦完成,或者如果用户关闭框而不输入任何内容,我希望框执行自定义操作。我不想在colorbox的源代码中进行挖掘,因此它们为各种回调函数提供了空间。例如,当用户输入信息并单击按钮时,它将关闭颜色框,提交ajax并刷新基础页面。     

要回复问题请先登录注册