I see. I agree, it’s not that easy to understand that a CoffeeScript class “declaration” is actually compiled line by line to assignments inside some closure. This is untypical compared to other class-based OO languages.

```
foo: ->
```
gets
```
Foo.prototype.foo = function () {};
```
whereas
```
foo = ->
```
gets
```
var foo;
foo = function () {};
```

When scanning the code, the difference between `:` and `=` might be missed.