Skip to content

Instantly share code, notes, and snippets.

@jrmoran
Created November 21, 2011 01:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jrmoran/1381370 to your computer and use it in GitHub Desktop.
Save jrmoran/1381370 to your computer and use it in GitHub Desktop.
Privileged methods CoffeeScript
class Person
constructor: (name)->
@name = name
# private method
greet_p = (person = {}) ->
msg = if person.hasOwnProperty 'name'
"Hi #{person.name}"
else
"Hi"
"#{msg}, I'm #{@name}"
# privileged method
greet: (person)->
greet_p.call this , person
console.log '***'
john = new Person 'John'
bob = new Person 'Bob'
console.log john.greet() # Hi, I'm John
console.log bob.greet() # Hi, I'm Bob
console.log john.greet bob # Hi Bob, I'm John
console.log bob.greet john # Hi John, I'm Bob
console.log john.greet_p() # Object #<Person> has no method 'greet_p'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment