2013-12-18 84 views
0

我在JavaScript文件index.js中有2個對象。如何在JavaScript中調用另一個對象的函數?

var obj1 = { 
    function1: function() { 
     // do something 
     obj2.function2(); 
    } 
}; 

var obj2 = { 
    function2: function() { 
     // do something 
    } 
}; 

我從一個html文件調用function1(),就像這樣。

<script type="text/javascript" src="js/index.js"></script> 
<script type="text/javascript"> 
    obj1.function1(); 
</script> 

問題是obj2上的function2沒有被調用。
爲什麼function2沒有被調用?
eclipse中的內容幫助根本不顯示函數,當我做obj2。(ctrl空格)。 語法不正確?

+2

那麼......你怎麼稱呼它? – gdoron

+0

顯示函數調用。 – leaf

+0

是的,剛剛刪除。看起來相似但不是 – Liam

回答

0

它沒有被調用,因爲function1沒有被調用。

obj1.function1()添加到代碼的末尾,它的工作原理。

您還應該添加一些代碼,以便爲function2提供可見的效果,以便您可以分辨何時調用它。

demo

0

如果調用obj1.function();在聲明obj2之前,它應該拋出一個錯誤,因爲你不能調用一個未定義對象的方法。我看不出其他原因,它不會工作...

-1

您可以使用相同的代碼做,但只是調用功能1申報

var obj1 = { 
    function1: function() { 
     // do something 
     obj2.function2(); 
    } 
}; 

var obj2 = { 
    function2: function() { 
     // do something 
     alert("obj2"); 
    } 
}; 

obj1.function1(); 

後,您可以在http://jsfiddle.net/vVKKZ/

檢查,因爲當你在那時調用了function1,obj1沒有被聲明,所以在那時它是未定義的。

+0

我所展示的代碼是在一個JavaScript文件中。我從html文件調用function1()。我在上面的問題中添加了html代碼。敬請期待。 – Ajay

+0

只是嘗試從body標籤的結尾調用function1。 –

+0

index.js腳本添加頭標記並在主體底部調用腳本。 –

相關問題