javascript - 对 CoffeeScript 范围的误解

标签 javascript jquery coffeescript

为什么我在以下代码中收到错误 Uncaught TypeError: preload is not a function

preload = (event, ui) ->
  preload = new createjs.LoadQueue()
  preload.loadFile('/images/medium/missing.png')
  return

$('.tool').draggable(
  {
    revert: true
    drag: (event, ui) ->
      preload(event, ui)
  })

我想我已经定义了 preload()。尽管有错误,该函数仍会执行。问题在哪里?

最佳答案

回答你原来的问题

在大多数带有闭包的语言(包括 JavaScript)中,内部 preload 和外部 preload 可以而且将会是分开的。 CoffeeScript 虽然不允许在更深的范围内隐藏或定义相同的变量,但这样做会覆盖全局变量。阅读This article有关 coffeescript 范围的更多信息。

关于javascript - 对 CoffeeScript 范围的误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35390789/

相关文章:

javascript - Rails 4.1.6 form_for Coffeescript 在多个 View 上不起作用

javascript - Php 和 JQuery - 如何对访问站点页面的计算机可见的页面更改

JavaScript:如何添加属性?

javascript - 如何使用Jquery统计文本区域中只有字母而没有数字的单词?

coffeescript - 如何用 gulp 编译 bootstrap-sass?

ruby-on-rails - 在rails中查找 CoffeeScript 错误的行号

javascript - Angular 4 单例服务

javascript - float 图调整大小错误,高度无效

javascript - 重新加载页面而不向上滚动

javascript - 使用jquery的登录页面不重新提交