なぜ ReferrenceError が起こるのか?
オブジェクト同士が参照し合っているから
map
や parentNode
など このような null 許容型のプロパティが暗黙的に存在していて、どれがそうなのか分かりづらい #型
参照が null だった場合、どう振る舞うのが正しいのかが未定義なことが多い #ユニットテスト
HPラベルなどのオブジェクトがいつ生成されているのかが分かりづらい
副作用のあるメソッドやプロパティを同期的に呼ぶから
最も厄介なメソッド
destroy
RPGObject.collection
からいつの間にかいなくなっている つねに
if(this.parentNode) { ... }
しなくちゃいけない? locate
や behavior
も間接的にオブジェクトを消してしまう場合がある 各イベントがどういう順番で呼ばれるのかが未定義だから
ぶつかった相手が別のイベントハンドラで消えてしまって #ReferrenceError ...
そもそもイベントドリブンだけでゲームを作ることは極めて難しい
画像の
preload
が終わるまで image
をセットできない enchant.jsの最もよく起こる問題のひとつ
typo
Feeles には typo を事前に知らせてくれたり、正しい名前を補完してくれる機能がない
IDE を使っても、
import
できちんと依存解決できていないので恩恵を受けられない DOM の描画とオブジェクトの挙動が密結合すぎて、ユニットテストが書けない