3

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

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

4

1 回答 1

5

你想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>

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

于 2013-05-08T12:19:29.447 回答