2010-06-30 8 views
0

je la configuration suivante:Comment configurer dans 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); 
    } 
}; 

Avec cette configuration, il est possible de définir un programme, la valeur de « une valeur » avant cette déclaration?

De plus, est-il possible d'avoir un appel de fonction javascript qui renvoie une valeur aux tableaux de bord?

Merci.

+0

Qu'essayez-vous d'accomplir? Donnez-nous un peu plus de contexte pour travailler avec. –

+0

Je suis en train d'essayer de pré-remplir avec une liste d'URL en fonction de certains critères, mais malheureusement, quand j'essaye de le faire, la valeur initiale de some_value est nulle et j'obtiens une erreur javascript. Espérons que cela a du sens. – tonyf

Répondre

0

Que pensez-vous de cela?

dashboards: null, 
+0

Avez-vous essayé celui-ci? – BlueBird

0

Pour définir une valeur aux tableaux de bord

Dash.dashboards = "something" 
0

Comme tableaux de bord va contenir un tableau j'utiliser un tableau vide: dashbords: []

1

Non avant (peu de valeurs fictives comme null) mais vous pouvez le faire ensuite en utilisant Dash.dashboards= some-value;

1

No.

Vous devez définir Dash afin de définir Dash.dashboards, et dès que le code que vous avez indiqué est écrasé.

Donc, non.

1

Javascript a une portée lexicale et non une portée de bloc. Cela signifie que toutes les déclarations de variables en javascript sont déplacées vers le haut de la fonction.

Ainsi, le code que vous avez écrit est modifiée à sa quelque chose comme:

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); 
     } 
    }; 

Donc, vous voulez essentiellement accéder à la valeur de Dash.dashboard avant Dash est affecté, ce qui échouerait Dash est indéfini. et undefined.dashboard vous donnerait une erreur. Cependant, vous pouvez certainement appeler une fonction dans l'opération d'affectation qui renseigne some_value

var Dash = { 
     dashboards: function_call() 
} 

BTW, pourquoi exactement ce que vous voulez utiliser Dash.dashboard avant l'opération d'affectation? Si vous pouviez nous le dire, il pourrait y avoir une meilleure façon de le faire.

1

Vous ne pouvez pas. Le tiret serait indéfini jusqu'à ce qu'il soit assigné. donc Dash.dashboard ne serait pas accessible.

Questions connexes