0
現時点では、eval()
を使用してオブジェクトを動的に作成していますが、呼び出された関数コンストラクタは実際には終了しています。クロージャでオブジェクトを動的に作成する場合のeval()の代替ソリューション?
実際のアプリケーションコードのeval()
の文字列は、条件に基づいて作成されています。
eval()
を使用しないで同じ結果を得ることができるかどうかを知りたいと思います。
私はグローバルwindow
にIcon
とLogo
を追加して、新しいオブジェクトを宣言するときwindow[myDesiredFunction]
のような構文を使用して回避ソリューションに興味があると思います。また、ハードコードされたスイッチケースステートメントは使用できません。
(function(window){
var Icon = function(id){
this.id = id;
};
var Logo = function(id){
this.id = id;
};
var app = {
start:function(){
var item1 = eval("new Icon('iconA')"); // i need replace eval()
var item2 = eval("new Logo('logoB')"); // just as example string will be created with some condition dynamically
console.log(item1 .id);
console.log(item2 .id);
}
};
app.start();
})(window);
をあなたはevalの – Mitul
に変換するいくつかのデータをお願いできますだけでなく、オブジェクトウィッヒを作成し、これらの2つのコンストラクタを保存します(その後、 '新しいmyConstructorsのようにそれを呼び出します['Icon']( 'iconA') ') – Kaiido
' var constructors = {アイコン:アイコン、ロゴ:ロゴ}; var item1 =新しいコンストラクタ["Icon"]( "iconA"); ' – nnnnnn