title: angular 2 change detection and ChangeDetectionStrategy.OnPush
body: <p>I'm trying to understand the <code>ChangeDetectionStrategy.OnPush</code> mechanism. </p>
  
  <p>What I gather from my readings is that a change detection works by comparing the old value to the new value. That comparison will returns false if the object reference hasn't changed.</p>
  
  <p>However there seems to be certain scenarios where that "rule" is bypassed. Could you explain how does it all work ? </p>