Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6011691
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T02:17:47+00:00 2026-05-23T02:17:47+00:00

I noticed something that I can’t quite explain. I made this javascript code that

  • 0

I noticed something that I can’t quite explain. I made this javascript code that grows or shrinks a blue box. The script is here:

var animated = {

  timer : null,

  el : document.getElementById("divNavyBox"),

  startGrowAnimation : function() {

      this.stopAnimation();

      this.timer = setInterval(

          animated.doAnimation(5), 10);

  },

startShrinkAnimation : function() {

    this.stopAnimation();

    this.timer = setInterval(function() {

        animated.doAnimation(-5);

    }, 10);

},

stopAnimation : function() {

    clearInterval(this.timer);

},

doAnimation : function(amount) {

    var size = this.el.offsetWidth;



    if ((amount > 0 && size < 200) || (amount < 0 && size > 0)) {

        this.el.style.width = size + amount + "px";

        this.el.style.height = size + amount + "px";

    } else {

        this.stopAnimation();

    }

}

};

When the startGrowAnimation method of the animated class is called, the box visually grows until it reaches a certain width and height. It then stops. The startGrowAnimation code is located below:

startGrowAnimation : function() {
    this.timer = setInterval(function() {
        animated.doAnimation(5);
    }, 10); 
}

This code WORKS just fine. However, I don’t understand WHY it’s necessary to put an anonymous function in the parameter instead of just the normal call function. So, I replaced the code above with the code below:

startGrowAnimation : function() {

    this.stopAnimation();

    this.timer = setInterval(animated.doAnimation(5), 10);

},

When I use this code, for some reason, the box only increases in size by five pixels each time the startGrowAnimation method is called.

So, why is it necessary to include the startGrowAnimation method inside of an anonymous function call in this case?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T02:17:47+00:00Added an answer on May 23, 2026 at 2:17 am

    That code you tried will call that function and pass the return to setInterval(). That is obviously not what you want.

    If you placed animated.doAnimation (a reference to the function) as the callback argument, the this value inside of that function will point to window, not the object itself. This is because it has lost the context of being called as a method of that object.

    So you must call the method as a property of the object. This means you need to use an anonymous function wrapper so its body can be animated.doAnimation().

    The only other way is not worth mentioning as it invokes an eval() type function.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I noticed that some stylesheets have something like this: body { font-size: 62.5%/1.2em; }
This is something that I have noticed in Android. If you restart the phone,
I am relatively new to C#, and I noticed something interesting today that I
Something that I've noticed recently on two different machines is that Apache2 installed via
I've noticed something about my coding that is slightly undefined. Say we have a
I noticed that when you call a superclass's methods, you need to do something
I've noticed that PHPmyAdmin creates the following SQL for table creation: CREATE TABLE something
I'm using find for a task and I noticed that when I do something
So I've been playing around with python and noticed something that seems a bit
A thing that I noticed about most JavaScript frameworks is that the most common

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.