#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;
});