Как вызвать метод объекта, если названия метода и объекта хранятся в переменных?

Как вызвать метод "met" объекта из переменной, содержащей имя объекта и метода без использования функции eval в JavaScript?
  • 29 марта 2024 г. 9:09
Ответы на вопрос 3
Для вызова метода объекта, названия которых хранятся в переменных, можно воспользоваться следующим способом в JavaScript:

```javascript
const obj = {
  met: function() {
    console.log("Метод объекта был вызван");
  }
};

const objName = "obj";
const methodName = "met";

// Вызов метода объекта
const method = obj[methodName];
objName[method]();
```

Таким образом, мы используем квадратные скобки для доступа к методу объекта по его имени, хранящемуся в переменной `methodName`, а затем вызываем этот метод, обратившись к объекту по его имени, хранящемуся в переменной `objName`.

Этот способ позволяет вызвать метод объекта без использования функции `eval`, что повышает безопасность кода.

Итак, вышеуказанный код позволит вызвать метод объекта из переменной, содержащей имена объекта и метода без использования функции `eval`.
Похоже на вопрос с собеседования ) <br/> Нужно от текущего контекста (window, this или еще что) действовать. Поделить на части и сделать что-то типа <br/> <pre><code class="javascript">console.log('obj.met'.split('.').reduce((c, k) =&gt; return  typeof c[k] === 'object' ? c[k] : c[k](), window))</code></pre> <br/> <br/> но это не всегда возможно
Сам спросил, сам ответил)) <br/> <code class="javascript">window[ obj][ met]();</code>
Похожие вопросы