2010-06-30 75 views
0

我有以下設置:如何設置這在Javascript

var Dash = { 
    nextIndex: 0, 
    dashboards: <some value>, 

    display: function() 
    { 
     var dashboard = Dash.dashboards[Dash.nextIndex]; 
     document.getElementById("iframe3").src = dashboard.url; 
     Dash.nextIndex = (Dash.nextIndex + 1) % Dash.dashboards.length; 
     setTimeout(Dash.display, dashboard.time * 1000); 
    } 
}; 

在此設置下,是有可能通過編程設置,「一些價值」在此之前聲明的價值?

此外,是否有可能是一個JavaScript函數調用,重新爲儀表板賦值?

謝謝。

+0

你想達到什麼目的?給我們更多的背景。 – 2010-06-30 07:54:22

+0

我基本上試圖根據某些標準預先填充的url列表,但不幸的是,當我嘗試並執行此操作時,some_value的初始值爲null,我得到一個javascript錯誤。 希望這是有道理的。 – tonyf 2010-06-30 08:05:31

回答

0

這個怎麼樣?

dashboards: null, 
+0

你試過這個嗎? – BlueBird 2010-06-30 08:39:57

0

要設置一些值的儀表板

Dash.dashboards = "something" 
0

如儀表板將要舉辦的陣列我會用一個空數組:dashbords: []

1

現有(短虛擬值的像null)但是你可以在之後使用Dash.dashboards= some-value;

1

編號

您將不得不定義Dash以定義Dash.dashboards,只要您列出的代碼運行,它將被全部覆蓋。

所以,沒有。

1

JavaScript具有詞彙範圍界定並且不會阻止範圍界定。這意味着所有javascript中的變量聲明都被移到了函數的頂部。

所以,你寫的代碼內部改爲類似:

var Dash = undefined ; 
    // other lines of codes 
    Dash = { 
     nextIndex: 0, 
     dashboards: some_value, 

     display: function() 
     { 
      var dashboard = Dash.dashboards[Dash.nextIndex]; 
      document.getElementById("iframe3").src = dashboard.url; 
      Dash.nextIndex = (Dash.nextIndex + 1) % Dash.dashboards.length; 
      setTimeout(Dash.display, dashboard.time * 1000); 
     } 
    }; 

所以你基本上要Dash分配之前訪問的Dash.dashboard的價值,這將失敗,因爲Dash是不確定的。和undefined.dashboard會給你一個錯誤。 但是你絕對可以稱之爲在填充some_value

var Dash = { 
     dashboards: function_call() 
} 

順便說一句,到底爲什麼會想要賦值操作之前,使用Dash.dashboard賦值操作的功能?如果您可以告訴我們,可能有更好的方法。

1

你不能。 Dash在分配之前將不確定。所以Dash.dashboard不會被訪問。