¿Por qué y cuándo necesitamos vincular funciones y manejadores de eventos en React?

class SomeClass extends Component{
  someEventHandler(event){
  }
  render(){
    return <input onChange={------here------}>
  }
}

Veo diferentes versiones de------here------ parte.

// 1
return <input onChange={this.someEventHandler.bind(this)}>

// 2
return <input onChange={(event) => { this.someEventHandler(event) }>

// 3
return <input onChange={this.someEventHandler}>

¿Cómo son diferentes las versiones? ¿O es solo una cuestión de preferencia?

Gracias a todos por sus respuestas y comentarios. Todos son útiles, y recomiendo leer este enlace.PRIMERO si estás confundido como yo sobre esto.
http://blog.andrewray.me/react-es6-autobinding-and-createclass/

Respuestas a la pregunta(2)

Su respuesta a la pregunta