咖啡脚本绑定?
Coffeescript binding?
我刚刚读完 The Little Book on Coffeescript,我正在努力了解这门语言。我想弄清楚如何做一个非常普通的香草绑定。这是我的代码:
times = (a = 1, b = 2) -> a*b
h = alert.bind times 8, 9
h
这不会产生任何错误,但也不会 运行 任何警报。我究竟做错了什么?
- 您没有调用函数
h
。您需要致电 h()
.
- 这段代码没有意义。第 2 行转换为
var h = alert.bind(times(8, 9))
,这意味着您正在尝试创建 alert
的版本,其中 this
是 72
。 ???你不能那样做。
- 根据 2,这会引发错误,
Uncaught TypeError: Illegal invocation
。
一个有助于理解 coffeescript 的工具是 JS2Coffee,它将在 Coffeescript 和 JavaScript 之间来回转换代码。然后你可以看看你写的是不是你认为的那样。
你这里的代码有两个问题:
bind
将上下文(它将用作其 this
)作为其第一个参数。调用新函数时,后续参数将构成绑定函数的参数列表。
- 调用没有参数的函数需要在 CS 中加括号
我刚刚读完 The Little Book on Coffeescript,我正在努力了解这门语言。我想弄清楚如何做一个非常普通的香草绑定。这是我的代码:
times = (a = 1, b = 2) -> a*b
h = alert.bind times 8, 9
h
这不会产生任何错误,但也不会 运行 任何警报。我究竟做错了什么?
- 您没有调用函数
h
。您需要致电h()
. - 这段代码没有意义。第 2 行转换为
var h = alert.bind(times(8, 9))
,这意味着您正在尝试创建alert
的版本,其中this
是72
。 ???你不能那样做。 - 根据 2,这会引发错误,
Uncaught TypeError: Illegal invocation
。
一个有助于理解 coffeescript 的工具是 JS2Coffee,它将在 Coffeescript 和 JavaScript 之间来回转换代码。然后你可以看看你写的是不是你认为的那样。
你这里的代码有两个问题:
bind
将上下文(它将用作其this
)作为其第一个参数。调用新函数时,后续参数将构成绑定函数的参数列表。- 调用没有参数的函数需要在 CS 中加括号