2011-11-21 10 views
23

Uczę się używać literałów obiektowych w JS i próbuję uruchomić funkcję wewnątrz obiektu przez wywołanie jej przez inną funkcję w tym samym obiekcie. Dlaczego funkcja "run" nie działa podczas wywoływania jej z funkcji "init"?Funkcje wywołania z funkcji wewnątrz obiektu (literał obiektowy)

var runApp = { 

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

    run: function() { 
      alert("It's running!"); 
    } 
}; 

Odpowiedz

10

Nie ma nic magicznego nieruchomości init obiektu, który zdarzy się, że przypisano funkcję. Więc jeśli tego nie nazwiesz, to nie będzie działać. Żadne funkcje nie są kiedykolwiek wykonywane dla ciebie podczas konstruowania literału obiektu w ten sposób.

Jako taki, kod staje się w ten sposób:

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

// Now we call init 
runApp.init(); 
Powiązane problemy