Question: Why do I need to bind () a function inside a constructor? 

```
constructor (props){
    super(props);
    this.funcao = this.funcao.bind(this);
}

```

could not bind () without using a constructor?

Answer: 
Keep in mind that if you write your functions in your class as arrow functions, you don't need to bind(this).. its automatic. You don't need to bind properties in your constructor because it already has a this keyword attached to it.
The reason why you `bind()` functions is because class methods are not bound to the class instance object, which in React's case, it means you don't have access to the component's `state` or `props`.

Use arrow functions to automatically bind to the instance object: `funcao = () => {...}`

And call it from anywhere inside your component like this: `this.funcao()`