2011-11-21 79 views
23

Tôi đang học cách sử dụng các đối tượng trong JS, và tôi đang cố gắng lấy hàm bên trong một đối tượng để chạy bằng cách gọi nó qua một hàm khác trong cùng một đối tượng. Tại sao chức năng "chạy" không chạy khi gọi nó từ hàm "init"?Gọi hàm từ hàm bên trong đối tượng (đối tượng theo nghĩa đen)

var runApp = { 

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

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

Trả lời

10

Không có gì huyền diệu về init tài sản của một đối tượng, mà bạn tình cờ đã gán một chức năng để là. Vì vậy, nếu bạn không gọi nó, thì nó sẽ không chạy. Không có hàm nào được thực hiện cho bạn khi xây dựng một đối tượng theo nghĩa đen như thế này.

Như vậy, mã của bạn sẽ trở thành:

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

// Now we call init 
runApp.init(); 
Các vấn đề liên quan