私は、オブジェクト名を関数に渡してオブジェクトを取得するために繰り返し使用する関数を作成しようとしています。変数名の一部を関数に渡して変数名を取得する方法
以下のスニペットを使用して試しましたが、undefined
を出力しています。
名前の一部をこのような関数に渡して実際の変数を取得するにはどうすればよいですか?
function writeObject(name){
console.log(placeObjects[name+'Item']);
}
function placeObjects(){
var availableObjects = new Array();
availableObjects.push(new Object('image','kepler'));
availableObjects.push(new Object('image','lightning'));
availableObjects.push(new Object('image','tomato'));
availableObjects.push(new Object('image','us'));
var topItem = availableObjects[0];
var leftItem = availableObjects[1];
var bottomItem = availableObjects[2];
var rightItem = availableObjects[3];
writeObject('top');
writeObject('left');
}
placeObjects();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
が、私がやろうとしていてどのように私は、動的に名前を使用して、現在のスコープ内の変数を参照するのでしょうか? –
名前の部分を連結して可変アクセスを使用するという一般的な考え方は悪いです。あなたがすべてのvarの出現が名前を変更し、ロジックが間違ってくることになると、あなたは、コードの縮小を使用することを想像してください。私はいくつかのオブジェクトのキーとして名前を使用することをお勧めします。 –
@SerejaNagin大丈夫ですが、変数を連結するのではなく、その全体の名前を渡すことでどのように変数を参照できますか?または、オブジェクトのキーとして名前を使用することを提案する例を挙げることはできますか?私は自分の問題が変数の親を探すことと関係していると思う。 –