Я создаю класс, связанный с canvas, с таблицей преобразования. Таблица преобразования может быть отредактирована пользователем. (Не очень актуально, но, может быть, вы хотите знать, почему):
cLayout = function(option) {
//obtaining the canvas (el) here
this.setup = function(option) {
t=this.table;
for (var p in t)
{
el[t[p][0]] = option[p]||t[p][1]
}
}
this.setup(option)
}
cLayout.prototype.table = {
width:[['style']['width'],"100%"],
height:['style'['height'],"100%"],
bg:[['style']['backgroundColor'],""],
position:[['style']['position'],"absolute"],
left:['style'['left'],"0px"],
top:['style'['left'],"0px"]
}
Пример:
var b = new cLayout({left:'10%',width:'90%'})
Реальный вопрос:
Обычно я бы использовал el['style']['width']
для установки el.style.width.
Но я хочу использовать el[something]
без второй пары скобок: я хочу, чтобы имя свойства было полностью переменным (я также хочу иметь возможность установить el['innerHTML']
). Итак, есть ли способ получить внука, используя a[b]
, без использования a[b][c]
?
P.S. Конечно, я не хочу использовать eval.