Javascript

When should I use “this” keyword?

When you browse through Javascript code, you often see function calls prepended with this. keyword, like this.functionName(). However, sometimes this is missing and it’s just functionName(). What is...

Written by Luci · 36 sec read >

When you browse through Javascript code, you often see function calls prepended with this. keyword, like this.functionName(). However, sometimes this is missing and it’s just functionName(). What is the difference and when you should use one over the other?

That depends on whether you React component is functional or class-based.

If your component is a class-based component and functionName is a method of that class, then you must address to it as this.functionName. For example:

class App extends React.Component {
  // myFunc is a method of App class
  myfunc() {
    ...
  }

  render() {
    myfunc(); // Error! "myfunc is not defined"
    this.myfunc(); // #ThumbsUp
    ...
  }
}

On the other hand, if your component is functional, then functions you declare inside it do not require this keyword to be addressed to, no matter if they are defined with function keyword or as arrow functions.

const App = () => {
  function myfunc1(){
    ...
  }

  const myfunc2 = () => {
    ...
  }

  myfunc1(); // This works
  myfunc2(); // This works too
  this.myfunc1(); // Error: Cannot read property 'myfunc1' of undefined

  ...
};
Written by Luci
I am a multidisciplinary designer and developer with a main focus on Digital Design and Branding, located in Cluj Napoca, Romania. Profile
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x