2
は、我々は次のコードを持っていると仮定しましょう:Javascriptで変数の名前を取得するにはどうすればいいですか(C#のnameof演算子など)?
const myVariable = { age: 7, name: "Hunter" };
私は変数ではなく、それだけの価値の名前を知っている...と、文字列にそれを置くか、またはそれを記録したいですか...。
const s = nameof(myVariable) + ': ' + JSON.stringify(myVariable);
そして、私が見たいと思った結果は次のようにかなっている:
あなたのソリューションを見ることを楽しみにして"myVariable: {"age":7,"name":"Hunter"}"
。
これはES6でのみ動作し、 '{x}'は '{x:x} 'のショートカットであることに注意してください。しかし、現時点では、あなたはすでに変数の名前を知っているので、私はその点を見ません!あなたは 'const s =" myVariable: "+ JSON.stringify(myVariable)と書くことができます。ポイントは? JavaScriptがプリプロセッサを持っていて、C++の '#'プリプロセッサプリフィックスのようなものを探していたのですが、それはありませんでした...(もしデバッグ出力の場合は 'JSON.stringify '{" myVariable ":{" age ":" name ":" hunter "}}')... – CherryDT
は 'Object.keys({myVariable})'ではありません。 (myVariable)[0]; 'あなたのメソッドと同じくらい簡単で、何がやっているのかははっきりしていますか? – Liam
@Liam:いいえ、トリックは中括弧と[ES6のプロパティの短縮形](http://es6-features.org/#PropertyShorthand)にあります。基本的には、彼は '' my.variable '(myVariable:myVariable) '、つまり' 'myVariable' 'である' 'Object.keys({myVariable:myVariable})[0]'を実行しています。 – CherryDT