インターン51日目(多分)

さて今日は

  1. 怖話中で指定の画像が無い場合に背景がなくなる

をやっていた.

2つ詰まったところがあって,

1つは配列の要素それぞれを使ってajax通信した後に通信結果を使って元の配列を変更したい場合, 例えば次のように書くと

foos = ['a', 'b', 'c']
for foo, idx in foos
  $.ajax
    type: 'get'
    url: '/bar'
    success: ->
      foos[idx] = foo + 'baz'

全てのsuccess呼び出し内でidx = 2, foo = 'c'となってしまうやつ. これは

foos = ['a', 'b', 'c']
for foo, idx in foos
  ((foo, idx) ->
    $.ajax
      type: 'get'
      url: '/bar'
      success: ->
        foos[idx] = foo + 'baz'
  ) foo, idx

みたいに予め適用しといてやるとよさげ.

もう1つは,

class Klass
  prop: 'foo'

  proc1: ->
    pr2 = @proc2
    $.ajax
      type: 'get'
      url: '/bar'
      success: ->
        pr2()

  proc2: ->
    console.log @prop

ってやるとsuccessの中のpr2の中で@propがundefinedになるやつ. これは単純に

proc2: =>
    console.log @prop

と, fat arrow使えばおーけー, 多分.