Rafael Laurindo Postado Maio 31, 2010 Denunciar Share Postado Maio 31, 2010 (editado) Olhem esse código, ele pega uma string e retorna uma classe instanciável, ou seja um construtor. Mas não funciona com jason.WindowEXT = { getConstruct : function(str) { arr = str.split('.') if (arr[1]){ func = ... } else{ var func = (window || this) func = func[str] } alert(typeof (func)) //esta linha é só para teste if (typeof (func) == 'function' || typeof (func) == 'object') return func return null/**/ }, } Exemplo de uso Funciona function Teste(){ this.write(str){ document.write(str) } } Não funciona Teste = { class : function(){ this.write(str){ document.write(str) } } } Saída Erro var t = WindowEXT.getConstruct('Teste.class') t.write('Rafael') saída Rafael [code]var t = WindowEXT.getConstruct('Teste') t.write('Rafael')O que estaria errado? Editado Maio 31, 2010 por Rafael Laurindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Laurindo Postado Maio 31, 2010 Autor Denunciar Share Postado Maio 31, 2010 (editado) Eu mesmo consegui resolver assimgetConstruct : function(str) { var arr = str.split(".") var len = arr.length var fn = (window || this) var msg = '' for (var i = 0; i < len; i++){ fn = fn[arr[i]] if(i < len-1) { msg += arr[i] + '.' if (typeof fn !== 'object') throw new Exception.class(arr[i] + ' is not a object') } else msg += arr[i] if (typeof fn === 'function') return fn } //essa ordem é porque o construtor é a última string throw new Exception.class(msg + ' is not a constructor') }, E assim ... Teste = { class : function(){ this.write(str){ document.write(str) } } } function Teste(){ this.write(str){ document.write(str) } } //Saída Rafael var t = WindowEXT.getConstruct('Teste.class') t.write('Rafael') //Saída Rafael var t = WindowEXT.getConstruct('Teste') t.write('Rafael') Editado Maio 31, 2010 por Rafael Laurindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rafael Laurindo
Olhem esse código, ele pega uma string e retorna uma classe instanciável, ou seja um construtor. Mas não funciona com jason.
Exemplo de uso Funciona Não funciona Saída ErroO que estaria errado?
Editado por Rafael LaurindoLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.