質問

このコードを検討してください:

var Someclass = new Class();
var Anotherclass = new Class();
var classes = ['Someclass', 'Anotherclass'];

そして、ダイナミックな名前でMootoolsクラスを作成したいと思います。もちろん、私は評価によってそれを行うことができます:

eval('var obj = new ' + classes[0] + '(params);');

しかし、私はそれが良い解決策だとは思いません。これを「適切な」方法で行う方法は?たぶんsomethinkのように:

var obj = ObjectFactory(classes[0], params);
役に立ちましたか?

解決

使用 ブラケット表記 クラスを文字列として参照します。

var object = new window['SomeClass']();

通常としてITパラメーターを渡します。

var object = new window['SomeClass'](1, 2, "three");

すべてのクラスをグローバルに作成する代わりに、オブジェクトを使用して名前を付けます。

var My = {
    SomeClass: new Class(..),
    OtherClass: new Class(..)
};

var object = new My['SomeClass']();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top