私はIIFEにいくつかのコードを持っています。私は、関数getValue()
を持っています。この関数は、IIFE内で宣言されている変数の値を動的に返します。私はeval()
を使用して、変数のデータ構造を再構成することなく、代わりのソリューションを探しています。動的な変数値を返すときにEval()を避ける
注 - 私はオブジェクト内に変数を入れないようにしようとしています(つまり、果物)。
(function() {
var apple = 'Apples!!',
banana = 'Bananas!!',
cucumber = 'Cucumbers!!';
function getValue(key) {
return eval(key); //can I avoid using eval()?
}
console.log(getValue('apple')); //Apples!!
})();
最初に変数を使用しないでください。オブジェクトを使用して名前に値をマップします。 – Barmar
@Barmar私の変数を別のオブジェクト(すなわち、果物)の中に入れることを意味しますか?私は自分の変数のデータ構造を変更しないようにしようとしています。 – Jon
はい、そうです。あなたがしようとしていることは、単にそれを行うための間違った方法です。変数名はプログラマのためのものであり、アプリケーションデータの一部であってはならない。 – Barmar