Call functions from function inside an object (object literal)

77,804

Solution 1

That code is only a declaration. You need to actually call the function:

RunApp.init();

Demo: http://jsfiddle.net/mattball/s6MJ5/

Solution 2

There is nothing magical about the init property of an object, which you happen to have assigned a function to. So if you don't call it, then it won't run. No functions are ever executed for you when constructing an object literal like this.

As such, your code becomes this:

var RunApp = {
    init: function(){   
         this.run()
    },
    run: function() { 
         alert("It's running!");
    }
};

// Now we call init
RunApp.init();

Solution 3

You can try the following code. It should work:

var RunApp = {

  init: function(){   
     RunApp.run()
  },

  run: function() { 
     alert("It's running!");
  }
};
Share:
77,804

Related videos on Youtube

holyredbeard
Author by

holyredbeard

Updated on July 09, 2022

Comments

  • holyredbeard
    holyredbeard almost 2 years

    I'm learning to use object literals in JS, and I'm trying to get a function inside an object to run by calling it through another function in the same object. Why isn't the function "run" running when calling it from the function "init"?

    var runApp = {
    
        init: function(){   
             this.run()
        },
    
        run: function() { 
                 alert("It's running!");
        }
    };
    
  • Julien Le Coupanec
    Julien Le Coupanec about 4 years
    This is not what he asked. He wants to call a function inside an object by calling it through another function in the same object.