动态访问对象名称

时间:2013-12-06 07:15:18

标签: javascript oop

我正在尝试选择动态对象的某些属性

var minus = {
    doAction: function(){
        console.log("this is minus");
    }
}

var plus = {
    doAction: function(){
        console.log("this is plus");
    }
}

var panelEvents = {
    button: function(){
        $(document).on("click", ".plus, .minus", function(){
            var buttonClass = $(this).attr('class');
        window[buttonClass][doAction](); //get an error
        });
    }
}

panelEvents.button();

问题
1.如何使用相同的方法动态调用各种对象? 2.在OOP视图中以这种方式访问​​方法是不好的做法吗?

更新

我明白,这不是灵活的做法。所以现在我只有理论上有兴趣访问动态对象。既不

window[buttonClass]['doAction']();

也不是

window[buttonClass].doAction();

工作。 萤火虫:
TypeError:window [buttonClass]未定义
窗口[buttonClass] 'doAction';
我是否应该将减号和加号对象附加到窗口?

问题是我的代码在jQuery对象里面

$(document).ready(function(){
//my code
)};

1 个答案:

答案 0 :(得分:0)

如果失败的行,您正在尝试调用一个名为与变量doAction的内容相同的函数。这里的问题是没有定义doAction。

你必须写:

window[buttonClass]['doAction']();

window[buttonClass].doAction();