Coffeescript 咖啡装订?

Coffeescript 咖啡装订?,coffeescript,bind,Coffeescript,Bind,我刚读完那本关于咖啡脚本的小书,我正试着了解一下这门语言。我想知道如何做一个简单的香草绑定。这是我的密码: times = (a = 1, b = 2) -> a*b h = alert.bind times 8, 9 h 这不会产生任何错误,但也不会运行任何警报。我做错了什么 您没有调用函数h。您需要调用h() 这个代码没有意义。第2行传输到var h=alert.bind(时间(8,9))意味着您正在尝试创建alert的一个版本,其中此为72???你不能那样做 根据2,这

我刚读完那本关于咖啡脚本的小书,我正试着了解一下这门语言。我想知道如何做一个简单的香草绑定。这是我的密码:

times = (a = 1, b = 2) -> a*b 
h  = alert.bind times 8, 9    
h
这不会产生任何错误,但也不会运行任何警报。我做错了什么

  • 您没有调用函数
    h
    。您需要调用
    h()
  • 这个代码没有意义。第2行传输到
    var h=alert.bind(时间(8,9))
    意味着您正在尝试创建
    alert
    的一个版本,其中
    72
    ???你不能那样做
  • 根据2,这会抛出一个错误,
    uncaughttypeerror:非法调用

  • 理解coffeescript的一个有用工具是,它将在coffeescript和JavaScript之间来回翻译代码。然后你就能知道你所写的是否是你认为你所写的

    这里的代码有两个问题:

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

  • 你认为这到底是怎么回事?结果JavaScript中出现了一个错误,
    Uncaught TypeError:非法调用
    @Mathletics不,只有在调用函数时才会出现错误。@RoyJ我们的两个答案都指出OP需要调用函数,因此他们会看到这个错误。如果你真的想学究气,当然,这段代码不会产生错误,因为它什么都不做。代码的更正版本将抛出错误。@Mathletics但是说OP得到错误是不正确的。OP不是。我们是,当我们改变他的密码。一个修正版的代码将完全符合OP的要求。非常感谢。非常感谢并很高兴看到如此活跃且信息良好的Cincs用户群。