Por que isso não funciona? Chamando funções pertencentes a objectos num loop

votos
0

Em meus jsc.tools código é um objeto contendo objetos. Cada sub-objecto contém uma init () e método de execução ().

Eu tenho o seguinte código em execução na inicialização:

for(tool in jsc.tools) {
    tool.init();
}

o que me dá o erro tool.init não é uma função.

Uma amostra de uma declaração do ferramenta é:

jsc.tools.sometool = {};
jsc.tools.sometool.run = function() {
    // Apply tool
}
jsc.tools.sometool.init = function() {
    // Set bits of data needed for the tool to run
}
Publicado 20/03/2009 em 20:26
fonte usuário
Em outras línguas...                            


2 respostas

votos
5

O operador no x em javascript dá-lhe os nomes das propriedades fora um objeto. Experimentar:

for(tool in jsc.tools) {
    jsc.tools[tool].init();
}
Respondeu 20/03/2009 em 20:28
fonte usuário

votos
0

você precisa usar

for(tool in jsc.tools) {
    jsc.tools[tool].init();
}
Respondeu 20/03/2009 em 20:29
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more