Friday, June 27, 2014

Coffee Scrupt

Coffee Script

故あってcoffee scriptを学習中.
javascriptのわけわかめな部分を解消するのがメリット?ということだけど、こいつもなかなか謎の動きをする気がする.
色々なやり方で関数をコール、問題がある場合に2通りの動き方をするのがとても怖い.
  • 例外が投げられて明示的に落ちる.
  • undefinedになる.
これはもう、慣れるしかないね…

サンプルコード

class Voiceroid
  @version : 'plus'
  name : 'yukarin'
  constructor: (_name) ->
    @name = _name if _name?
  say: (word) ->
    @name + ':' + word
  @what_version: ->
    'This version is ' + @version

console.log Voiceroid.name

# class variable
console.log 'Voiceroid.version : ' + Voiceroid.version
console.log 'Voiceroid.waht_version() : ' + Voiceroid.what_version()
console.log 'Voiceroid.what_version : ' + new Voiceroid().what_version
console.log 'new Voiceroid().version : ' + new Voiceroid().version

# error
#console.log new Voiceroid().what_version()
#console.log Voideroid.name()
#console.log Voiceroid.version();

console.log new Voiceroid().say 'hello, hello'
console.log new Voiceroid("makimaki").say 'yukarin, can you hear me?'
実行結果.
yukaary% node js/class.js
Voiceroid
Voiceroid.version : plus
Voiceroid.waht_version() : This version is plus
Voiceroid.what_version : undefined
new Voiceroid().version : undefined
yukarin:hello, hello
makimaki:yukarin, can you hear me?

No comments:

Post a Comment