当我有一个带有对象名称的字符串时,如何调用对象的方法?

时间:2017-12-15 14:40:14

标签: javascript

我有一个包含我想要调用的方法的对象。

myOb  = {    
 f1 : function() {
     console.log("hello from f1") ;
  }
}

我以字符串的形式获得了对象的名称。

str = "myOb" ;

当我以myOb的形式命名时,如何调用myOb上的方法?

2 个答案:

答案 0 :(得分:3)

1.全球范围

您必须对this对象使用window语句引用

this[str].f1();

示例:

myOb  = {    
 f1 : function() {
     console.log("hello from f1") ;
  }
}
str = "myOb" ;
this[str].f1();

2.本地范围

如果您拥有local范围,则可以使用bind方法。

myOb  = {    
 f1 : function() {
     console.log("hello from f1") ;
  }
}
str = "myOb";
(function() {  
    this[str].f1();    
}).bind(this)();

答案 1 :(得分:3)

您可以使用eval()执行此操作(也适用于NodeJS)。

myOb  = {
 f1 : function() {
     console.log("hello from f1") ;
  }
}

str = "myOb" ;
eval(str).f1()