2017-01-18 8 views
0

私は文字列を渡すことができる関数を書く必要があり、その文字列の内容に "prefix"という単語を置き換えます。したがって、関数を呼び出して新しい文字列、つまりalpha、betaなどを渡すたびに、そのキーをプレフィックスとして使用して、内部のすべてのレイヤーとイベントを完全に再構築します。私はevalを使う必要があると思っていますが、この場合どのようにしたらよいかわかりません。関数のevalを使用してレイヤ名のプレフィックスを置き換えますか?

layoutViews = (prefix) -> 
    prefix_layer1 = new Layer 
     width: 100 
     height: 100 

    prefix_layer1.on Events.Click -> 
     buttonActions() 

layoutViews(alpha) 
layoutViews(beta) 

私はCoffeeScriptのを使用していますが、実際のJSでの任意のアイデアは非常に歓迎と感謝しています。私はこの特定の質問がプロジェクトで何か他のことを間違っていることを示唆していることを認識していますが、それが可能なのかどうかは自分の好奇心のためです。

ありがとうございます。

+3

なぜ動的変数名を生成する必要がありますか?これらの動的変数をどのように参照するつもりですか?オブジェクトを使用してデータを保存し、そのキーを参照ポイントとして使用することを検討しましたか? –

答えて

1

ですから、このような

function build(prefix) { 
    window[prefix + "_hi"] = function() { 
    alert("hi"); 
    }; 
} 

使用したい:(!悪い)あなたはthis代わりのwindow依存に割り当てることが考えられますので

build("test"); 
test_hi(); 

ウィンドウは、ブラウザ内だけでグローバルな要素でありますあなたの使い方について

+0

素晴らしいです。ありがとう! –

+1

@FuegoDeBassiいいえ、それはありません。これを使わず、代わりにオブジェクトを使用してください。 – Bergi

関連する問題