Подтвердить что ты не робот

Вызов функций из функции внутри объекта (литерал объекта)

Я изучаю использование объектных литералов в JS, и я пытаюсь получить функцию внутри объекта для запуска, вызвав ее через другую функцию в том же самом объекте. Почему функция "run" работает, когда вы вызываете ее из функции "init"?

var runApp = {

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

    run: function() { 
             alert("It running!");
    }
};
4b9b3361

Ответ 1

Этот код является только объявлением . Вам нужно вызвать функцию:

runApp.init();

Демо: http://jsfiddle.net/mattball/s6MJ5/

Ответ 2

Нет ничего волшебного в отношении свойства init объекта, к которому вы, по-видимому, назначили функцию. Поэтому, если вы его не назовете, он не будет работать. Никакие функции никогда не выполняются для вас при построении литерала объекта, подобного этому.

Таким образом, ваш код станет следующим:

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

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