我正在尝试选择动态对象的某些属性
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
)};
答案 0 :(得分:0)
如果失败的行,您正在尝试调用一个名为与变量doAction的内容相同的函数。这里的问题是没有定义doAction。
你必须写:
window[buttonClass]['doAction']();
或
window[buttonClass].doAction();