咖啡脚本绑定?

Coffeescript binding?

我刚刚读完 The Little Book on Coffeescript,我正在努力了解这门语言。我想弄清楚如何做一个非常普通的香草绑定。这是我的代码:

times = (a = 1, b = 2) -> a*b 
h  = alert.bind times 8, 9    
h

这不会产生任何错误,但也不会 运行 任何警报。我究竟做错了什么?

  1. 您没有调用函数 h。您需要致电 h().
  2. 这段代码没有意义。第 2 行转换为 var h = alert.bind(times(8, 9)),这意味着您正在尝试创建 alert 的版本,其中 this72。 ???你不能那样做。
  3. 根据 2,这会引发错误,Uncaught TypeError: Illegal invocation

一个有助于理解 coffeescript 的工具是 JS2Coffee,它将在 Coffeescript 和 JavaScript 之间来回转换代码。然后你可以看看你写的是不是你认为的那样。

你这里的代码有两个问题:

  1. bind 将上下文(它将用作其 this)作为其第一个参数。调用新函数时,后续参数将构成绑定函数的参数列表。
  2. 调用没有参数的函数需要在 CS 中加括号