In this component, I'm not able to call a function in the render method by going this.functionName if it's not an arrow function. Howevever, I am able to call this.setState effectively in both an arrow function and a regular function. Why is "this" different in some situations, but seemingly the same in other situations in a React component like this?
import React from 'react';
class Address extends React.Component {
state = {
    fullAddress: "5001"
}
componentDidMount() {
    this.setState({
        fullAddress: "hello"
    })
}
hello = () => {
    this.setState({
        fullAddress: "hello1"
    })
}
logMessage() {
    console.log(this.state.fullAddress);
}
 render() {
   return (
     <div className="address">
       {this.state.fullAddress}
       <input type="button" value="Log" onClick={this.hello} />
     </div>
   );
 }
}
export default Address;
 
    