У меня есть несколько модулей, которые я хочу создать экземпляр объекта из строки. Это, как правило, легко, когда классы/объекты и т.д. находятся на глобальном масштабе window
RequireJS новый экземпляр модуля из имени строки
new window["MyClass"]()
С требуют JS модули не в window
объеме и они не на this
, если в классе.
Знаете ли вы, какой объем я требую?
define(['testclassb'], function(TestClassB) {
var TestClassA, testclassa;
TestClassA = (function() {
function TestClassA() {
console.log("A");
new this["TestClassB"](); #errors with undefined function
new window["TestClassB"](); #errors with undefined function
new TestClassB(); #works fine
}
TestClassA.prototype.wave = function() {
return console.log("Wave");
};
return TestClassA;
})();
testclassa = new TestClassA();
return testclassa.wave();
});
Спасибо, Yeh Я не люблю его ТБХ, но объект, который будет экземпляр определяется по передаче данных через сокет. Поэтому я хотел избежать неприятной тонности логики, поэтому я выбрал хэш для сопоставления строк с объектами. Http://pastie.org/7452137 – Rob
Да, это то, что вы всегда можете делать (и что правильно делать в этом случае) :-) – Bergi