Параметр как фактическая подстановка кода в Javascript

#javascript

#javascript

Вопрос:

Я хотел бы передать параметр функции, которая используется как фактический фрагмент кода

 this.illuminateLeg = function(whom) {
    var propertiesToIlluminate = [], prop, illuminateInternal, i = 0, delay = 100, intervalId;
    for (key in this.whom.zoom) {
        propertiesToIlluminate.push(this.whom.zoom[key]);
    }
}
  

Я пытаюсь передать whom параметр, который используется для перебора whom свойств моего объекта.

Я знаю, что можно передавать строки в качестве аргументов, но как насчет реальных фрагментов кода?

Возможно ли это сделать?

Комментарии:

1. Ваш вопрос действительно неясен. Вы пытаетесь получить доступ к свойству this , но хотите получить имя свойства из whom аргумента? Затем используйте синтаксис квадратных скобок, как предложено в ответе ниже. Или вы хотите передать функцию («фрагмент кода») в качестве аргумента? Затем просто передайте его.

2. Понял, приведенный ниже ответ попадает в точку.

Ответ №1:

Что-то вроде этого?

  for (key in this[whom].zoom)
  

Вместо

 for (key in this.whom.zoom)
  

а затем вызовите функцию следующим образом

 this.illuminateLeg("whom")
  

Ответ №2:

Если значением whom является имя свойства, вы можете сделать это:

 for (key in this[whom].zoom) {
  

В противном случае вы могли бы разрешить вызывающим пользователям передавать функцию, которая принимает объект:

 this.illuminateLeg = function(getWhom) {
    /* ... */

    for (key in getWhom(this).zoom) {
        /* ... */
    }

// Call with function as argument:
obj.illuminateLeg(function (param) {
    return param.somebody.somethingElse;
});