如何使用变量引用类

时间:2013-11-23 20:21:29

标签: javascript

如果我有这个对象:

var myclass = {

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

我想调用bar函数,具体取决于定义对象父级的变量,如下所示:

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

我该怎么办?

2 个答案:

答案 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

答案 1 :(得分:0)

您可以将对函数的引用保留为变量,这比字符串更清晰。

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

或保留对该部分的引用:

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