Skip to content

Commit

Permalink
instance method example for clarification
Browse files Browse the repository at this point in the history
  • Loading branch information
ScotterC committed Sep 13, 2012
1 parent 4c42df5 commit b2bcb00
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions chapters/classes_and_objects/class-methods-and-instance-methods.md
Expand Up @@ -9,6 +9,7 @@ You want to create a class methods and instance methods.

## Solution

### Class Method
{% highlight coffeescript %}
class Songs
@_titles: 0 # Although it's directly accessible, the leading _ defines it by convention as private property.
Expand All @@ -30,6 +31,25 @@ song.get_count()
# => TypeError: Object #<Songs> has no method 'get_count'
{% endhighlight %}

### Instance Method
class Songs
_titles: 0 # Although it's directly accessible, the leading _ defines it by convention as private property.

get_count: ->
@_titles

constructor: (@artist, @title) ->
@_titles++

song = new Songs("Rick Astley", "Never Gonna Give You Up")
song.get_count()
# => 1

Songs.get_count()
# => TypeError: Object function Songs(artist, title) ... has no method 'get_count'
{% endhighlight %}


## Discussion

Coffeescript will store class methods (also called static methods) on the object itself rather than on the object prototype (and thus on individual object instances), which conserves memory and gives a central location to store class-level values.

0 comments on commit b2bcb00

Please sign in to comment.