detecção de alteração angular 2 e ChangeDetectionStrategy.OnPush

Estou tentando entender oChangeDetectionStrategy.OnPush mecanismo.

O que eu deduzo das minhas leituras é que uma detecção de alterações funciona comparando o valor antigo com o novo valor. Essa comparação retornará false se a referência do objeto não tiver sido alterada.

No entanto, parece haver certos cenários em que essa "regra" é ignorada. Você poderia explicar como tudo isso funciona?

questionAnswers(4)

yourAnswerToTheQuestion