2013-11-23 93 views
2

如果我有这样的对象:如何引用类使用可变

var myclass = { 

    foo: { 
    bar: function(var) {} 
    }, 
    some: { 
    bar: function(var) {} 
    } 
} 

,我想这取决于定义对象的这样父级别的变量酒吧函数来调用:

var part = "some"; 
myclass.part.bar(var); 

我该怎么办?

+0

你说的 '父级' 是什么意思?你的意思是*上下文*(在函数中又名“this”)? – ComFreek

+0

我的意思是“富”或“一些” –

回答

5

可以使用数组访问符号做到这一点:

myclass[part].bar(var); 

JavaScript对象就像关联数组,你可以使用属性名来设置或获取属性的值,你甚至可以创建具有新特性这个语法。

例如:

var obj = { a : 1 }; 
console.log(obj["a"]); // 1 
obj["b"] = 2; // this creates a property called b and assigns 2 as the value 
console.log(obj["b"]); // 2 
0

你可以把一个函数作为变量,这是不是字符串干净了一点参考。

还是保持到了部分的引用:

var part = myclass.foo;//or myclass.some 
part.bar.call(myclass, var);