なぜ 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 の描画とオブジェクトの挙動が密結合すぎて、ユニットテストが書けない