このようなプログラムをテストするとき、私はしばしば変数の内容を監視する必要があります:
var anObject = {aProperty:true}; // this is just an example.
console.log('anObject.aProperty: ' + anObject.aProperty); <-- typed it twice.
変数の名前を文字列に入力してから、同じことをもう一度入力して値を参照します。
同じことを毎回2回書くのは不必要な重複のようです。関数を使用して名前を1回だけ書き込むことでこれを行う方法はありますか?
例えば:
function show(value) {
console.log("'" + ??? + "':" + value):
}
したがって、次のように使用できます(または同様のもの):
show(anObject.aProperty);
上記は簡単な例です。基本的に私が求めているのは、関数に渡された変数の名前を取得して、その名前を変数の値を示す文字列の一部として出力できるようにする方法があるかどうかです。
嫌いな人は嫌いになるでしょう:
http://jsfiddle.net/coma/6HTnB/
var anObject = {
aProperty: ['uno', 'dos', 'tres']
};
var log = function(object, property) {
var evil = 'object.' + property;
console.log(evil, eval(evil));
};
log(anObject, 'aProperty[2]');
さらに悪いことに:
http://jsfiddle.net/coma/6HTnB/2/
var anObject = {
aProperty: ['uno', 'dos', 'tres']
};
var show = function(a) {
console.log(a + ':', eval(a));
};
show('anObject.aProperty[2]');
ええと、eval自体は悪ではありませんが、関数が正しいスコープ内にある必要があるため、2番目のアプローチはちょっと醜いです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加