Coffeescript 未定义的类?

Posted

技术标签:

【中文标题】Coffeescript 未定义的类?【英文标题】:Coffeescript Undefined class? 【发布时间】:2013-05-02 16:07:05 【问题描述】:

我从咖啡脚本开始。 (还有英语,所以对于任何语法错误,我很抱歉。)看看这个类:

class Stuff
  handleStuff = (stuff) ->
    alert('handling stuff');

编译成:

var Stuff;
Stuff = (function() 
  var handleStuff;

  function Stuff() 

  handleStuff = function(stuff) 
    return alert('handling stuff');
  ;

  return Stuff;

)();

html 上我创建了一个 Stuff 实例,但该死的东西说它没有方法 handleStuff。 为什么?

【问题讨论】:

【参考方案1】:

您希望 handleStuff 出现在原型上,因此将其更改为:

class Stuff
  handleStuff: (stuff) ->
    alert('handling stuff');

区别在于冒号和等号。

编译为:

var Stuff;

Stuff = (function() 
  function Stuff() 

  Stuff.prototype.handleStuff = function(stuff) 
    return alert('handling stuff');
  ;

  return Stuff;

)();

你可以在这里看到它的工作原理:

<script src="http://github.com/jashkenas/coffee-script/raw/master/extras/coffee-script.js"></script>
<script type="text/coffeescript">
class Stuff
  handleStuff: (stuff) ->
    alert('handling stuff');
    
stuffInstance = new Stuff()
stuffInstance.handleStuff()
</script>

以及documentation中有关类和类成员的更多信息。

【讨论】:

以上是关于Coffeescript 未定义的类?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JSON 转换为 CoffeeScript 并写入文件“.coffee”?

什么是对的CoffeeScript + NPM的最佳做法?

Coffeescript的安装与编译

Rails - 从 JavaScript 调用 CoffeeScript

ruby on rails 中的 Coffeescript 编译错误

CoffeeScript 不工作“-bash:咖啡:找不到命令”