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

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。
为什么?

最佳答案

您希望 handleStuff 在原型(prototype)上,因此将其更改为:

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 中关于类和类成员的更多信息。

关于class - Coffeescript 未定义的类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16440474/

10-10 06:22