Como obter uma variável local pelo seu nome em JS?
-
23-09-2019 - |
Pergunta
Exemplo de trabalho com var global:
var example_var = 'global var example'; var x = function(){ var var_name = 'example_var'; alert('Global var value is: ' + window[var_name]); }
Como posso fazer a mesma coisa com uma variável local?Assim (exemplo não funcional):
var x = function(){ var example_var = 'Local var example'; var var_name = 'example_var'; alert('Local var value is: ' + window[var_name]); }
Solução
Você não quer usar eval
; Um objeto escopo localmente pode ser sua melhor opção:
var x = function(){
var self = {};
self.example_var = 'Local var example';
var var_name = 'example_var';
alert('Local var value is: ' + self[var_name]);
}
Outras dicas
Se não tiver outro jeito, você pode tentar eval
isto
var x = function(){
var example_var = 'Local var example';
var var_name = 'example_var';
alert('Local var value is: ' + eval(var_name));
}
Adicione a URL do site do SharePoint onde o arquivo do Excel reside à zona confiável no Internet Explorer (opções da Internet).Isso precisa ser feito na estação de trabalho do usuário B.
Verifique se outras configurações de segurança semelhantes, como políticas de firewall, antivírus, etc.
No momento, existem duas soluções para esse problema.
1. Eval (), mas eu realmente não gosto de usar o mal ()
2. Podemos alterar a declaração variável de var para isso:
var x = function(){ this.example_var = 'this.var example'; this.var_name = 'example_var'; alert('Local variable value is: ' + this[var_name]); }