Доступ к внучке переменной (parent.child.grandchild) без точек и одной пары скобок

Я создаю класс, связанный с холстом, с своего рода таблицей преобразования. Таблица преобразования может редактироваться пользователем. (На самом деле не имеет отношения к делу, но, возможно, вы хотите знать, почему):

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.

5
задан bopjesvla 18 June 2011 в 12:38
поделиться