Teyro
CoursesFor creatorsBlog
Log inGet started
Tey Mascot
LOADING.

Every expert you admire was once a beginner who refused to quit.

Teyro

The fun way to finish learning coding and AI: short daily lessons with streaks, leagues and friends.

Get the app

Learn

  • All courses
  • Learn coding
  • Learn AI
  • Learn online
  • How it works
  • Leagues
  • Get the app

Creators

  • Teach on Teyro
  • How teaching works
  • Teach coding online
  • Teach AI online
  • Join as a Founding Creator
  • Creator log in

Resources

  • Blog
  • Features
  • Use cases
  • Compare
  • FAQ

Legal

  • Terms of Use
  • Privacy Policy

© 2026 Teyro · support@teyro.app

HomeBlogSkill Building & Careers
Skill Building & Careers

The this Keyword in JavaScript: How It Works With Examples

this changes depending on how a function is called. Learn the rules for global, method, arrow, constructor and event handler contexts, plus call and bind.

The Teyro TeamOct 26, 20261 min read
On this page7 sections
  1. Direct answer
  2. The main cases
  3. Fixes
  4. Quick rules
  5. Where Teyro fits
  6. The bottom line
  7. More guides

Most beginners find this confusing because it is decided at call time.

Direct answer

In JavaScript, this refers to the object that calls the function. In a method call it is the object before the dot. In a regular function in strict mode it is undefined. Arrow functions do not have their own this, they use the one from where they were written.

The main cases

const person = {
  name: "Ada",
  greet() {
    console.log(this.name);
  },
};

person.greet(); // Ada

const fn = person.greet;
fn(); // this is not person here

Fixes

const bound = person.greet.bind(person);
bound(); // Ada

Arrow functions inherit this:

const timer = {
  seconds: 0,
  start() {
    setInterval(() => {
      this.seconds++;
    }, 1000);
  },
};

Quick rules

  1. obj.method() means this is obj.
  2. new Fn() means this is the new object.
  3. Arrow functions use outer this.
  4. call, apply and bind set this explicitly.

Where Teyro fits

Teyro's JavaScript for Beginners course turns this into short lessons you can play in a few minutes a day. It has 50 lessons, and you can start free.

The bottom line

Look at how a function is called, not where it is written, except for arrow functions.

More guides

  • How to Debug JavaScript
  • ES6 Features Every JavaScript Beginner Should Know
  • let vs const vs var in JavaScript
  • Javascript arrow functions
  • JavaScript for Beginners course

Frequently asked questions

What does this refer to in JavaScript?

It refers to the object that is calling the function. The value depends on how the function is called.

Why is this undefined in my function?

A method was probably detached from its object or called without a receiver.

How do I fix this problems?

Use arrow functions, bind the function or call it as a method on the object.

Learn it by playing

JavaScript for Beginners turns this into short, playable lessons. Free to start.

See the JavaScript for Beginners course

Free to start · No credit card needed

Share

Written by

The Teyro Team

Learning Team at Teyro

We build Teyro — an AI-powered learning platform that turns skill-building into a daily habit through bite-sized, gamified lessons. We write about the learning science and study strategies that shape our product.

More from The Teyro Team

On this page

  • Direct answer
  • The main cases
  • Fixes
  • Quick rules
  • Where Teyro fits
  • The bottom line
  • More guides

Keep reading

Skill Building & Careers

Best Careers for 2027: High-Demand Jobs and the Skills to Get Them

The best careers for 2027 and the jobs most in demand, based on BLS and World Economic Forum data, plus the skills each path needs.

Oct 30, 20263 min read
Skill Building & Careers

Best Certifications for 2027: Tech, Data, Cloud and Business

The best certifications for 2027 in cloud, security, data, project management and AI, who each one suits, and when a portfolio matters more.

Oct 30, 20263 min read
Skill Building & Careers

Best Programming Language to Learn in 2027 (for Your Goal)

The best programming language to learn in 2027 depends on what you want to build. Compare Python, JavaScript, TypeScript, SQL and C.

Oct 30, 20263 min read