2013-10-03 3 views
0

У меня есть довольно прямо вперед вопрос, но я не могу показаться, чтобы найти решение для него в любом месте ...Javascript экземпляр объекта с именем переменной

В основном я хотел бы создать экземпляр нового объекта Javascript, но имя класса - это переменная. В PHP реализация довольно прямолинейна new $className(). Я попробовал следующее решение в Javascript, не повезло:

window.onload=function(){ 
function obj(){ 
    this.show = function(){ 
     console.log('Hallo World'); 
    } 
} 

var objs = ['obj']; 

new objs[0]().show(); 
} 

Кто-нибудь знает, как это осуществить?

+0

Возможный дубликат [Создание экземпляра класса динамически через переменную] (http://stackoverflow.com/questions/923575/instantiate-a-class-dynamically-via-variable) – ComFreek

ответ

3

С кодом, как показано, вы не можете сделать это без eval.

Если вы готовы изменить его, вы можете:

window.onload=function(){ 
    var things = { 
     obj: function(){ 
      this.show = function(){ 
       console.log('Hallo World'); 
      }; 
     } 
    }; 

    new things['obj']().show(); 
    // Or: new things.obj().show(); 
}; 
+0

не видел вашего ответа и размещал то же самое вещь ... это все равно. –

1

это поможет вам:

var creator = { 
    obj : function(){ 
     this.show = function(){ 
     console.log('Hallo World'); 
     }; 
    } 
} 
var myInstance = new creator['obj']; 
myInstance.show(); 

Идея заключается в том, чтобы определить конструктор как свойство.

Смежные вопросы