freeCodeCamp Challenge Guide: Bind 'this' to a Class Method

Bind ‘this’ to a Class Method

Problem Explanation

If a method on JavaScript class need to access some internal state of the instance, like this.state, the method needs to be bound to the instance of the class. A more detailed description of ‘this’ binding can be found [here]( The JavaScript this Keyword + 5 Key Binding Rules Explained for JS Beginners (


Hint 1

Like many things in programming, there is more than one way to bind this. For this challenge we are going to stick with constructor binding.

class MyClass {
  constructor() {
    this.myMethod = this.myMethod.bind(this);

  myMethod() {
    // whatever myMethod does


Solution 1 (Click to Show/Hide)
class MyComponent extends React.Component {
  constructor(props) {
    this.state = {
      text: "Hello"
    this.handleClick = this.handleClick.bind(this);
  handleClick() {
      text: "You clicked!"
  render() {
    return (
        <button onClick = {this.handleClick}>Click Me</button>