ジンジャー研究室

長めのつぶやき。難しいことは書きません。

Object.observe() のコールバック実行タイミング

ざっくり分かるスクリプト

下のスクリプトを実行すると、どのようにalertが表示されるでしょう。

var obj = {};
setTimeout(function() {
  alert('D');
});
Object.observe(obj, function() {
  alert(obj.a);
  obj.a = 3;
});
alert('A');
obj.a = 1;
alert('B');
obj.a = 2;
alert('C');

結果(反転) ⇒ A B C 2 3 D
Chrome 36で確認)

即時 > Object.observe > setTimeout
の優先度で実行されるようです。