2017-01-13 18 views
0

JavaScriptと同様の文字列クラス名からJavascriptでオブジェクトを一般的に作成できますか?たぶん、ある種の工場?一般的にJavascriptで文字列クラス名からオブジェクトを作成

私は、データベースにクラス名のリストを保持したい。各クラス名はユーザーフレンドリーな名前に関連付けられます。これらのユーザーフレンドリーな名前はメニューを作成します。ユーザーがメニュー項目を選択すると、それぞれのクラス名が検索され、クラス(オブジェクト)が作成されます。私は現在Javaで似たようなことをしています。例えば、代わり

VAR OBJ =新しいdemo.view.CustomObject({})の

。私はこの

VAR OBJ = Factory.create( 'demo.view.CustomObject'、のparams)のような何かをしたいと思い

は、文字列を使用してオブジェクトのプロパティにアクセスするにはbracket notationを使用している探しているものをあなたに

答えて

1

ありがとうございます。ここでは、文字列をドットで区切るファクトリメソッドを作成しました。その後、array reduceを使用してconstructor関数に入り、最後にオブジェクトを作成します。

function construct(constructorPath, params) { 
    var constructorFunc = constructorPath.split('.') 
    .reduce((prev, next) => prev[next], window) 
    return new constructorFunc(params) 
} 

// Usage: 
var obj = construct('demo.view.CustomObject', someParams) 
+0

驚くばかりです。うまくいった。手形を完璧にフィットさせます。ありがとうございました。 – Terry

関連する問題