Как получить локальную переменную по названию в JS?

StackOverflow https://stackoverflow.com/questions/2146173

  •  23-09-2019
  •  | 
  •  

Вопрос

Рабочий пример с Global VAR:

var example_var = 'global var example';

var x = function(){
    var var_name = 'example_var';
    alert('Global var value is: ' + window[var_name]);
}

Как я могу сделать то же самое с локальной переменной? Как это (не работает пример):

var x = function(){
    var example_var = 'Local var example';
    var var_name = 'example_var';
    alert('Local var value is: ' + window[var_name]);
}
Это было полезно?

Решение

Вы не хотите использовать eval; Объект локально осевения может быть вашим лучшим вариантом:

var x = function(){
    var self = {};
    self.example_var = 'Local var example';

    var var_name = 'example_var';

    alert('Local var value is: ' + self[var_name]);
}

Другие советы

Я наконец-то погрузился достаточно глубоко, чтобы решить мою проблему.

Это согласно Microsoft по дизайну с веб-частью результата народ, вы можете использовать вещественную веб-часть CORE REVEST.

"Apparently, the issue is with the People Results web part. If you remove it and add the Core Results web part instead, point it at the People scope and configure it the same way, it should work."
.

есть обходной путь, который, вероятно, лучше:

Перейти к "Добавить сопоставления для вспученных свойств в управляемое свойство" contentshidden "(CONTAL Администрирование -> Управление приложениями -> Управление приложениями для обслуживания -> Приложение для поиска -> Свойства метаданных).

и карта темползними свойствами.А затем запустить инкрементную ползу.Это должно работать.

Добавить URL-адрес сайта SharePoint, в котором файл Excel находится в доверенной зоне в Internet Explorer (опции Интернета).Это должно быть сделано в рабочей станции пользователя.

Проверьте другие подобные настройки безопасности, такие как политики брандмауэра, антивирус и т. Д.

На данный момент есть два решения этой проблемы.
1. eval (), но я действительно не люблю использовать зло ()
2. Мы можем изменить объявление переменной от VAR на это:

var x = function(){
    this.example_var = 'this.var example';
    this.var_name = 'example_var';
    alert('Local variable value is: ' + this[var_name]);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top