次のコードがあると仮定しましょう。
const myVariable = { age: 7, name: "Hunter" };
変数の値だけでなく、変数の名前を知り、文字列に入れるか、ログに記録するか、次のようにします。
const s = nameof(myVariable) + ': ' + JSON.stringify(myVariable);
そして、私が見たい結果は次のようになります。
"myVariable: {"age":7,"name":"Hunter"}"
あなたの解決策を見るのを楽しみにしています。
これは、少し妥協したQ&Aスタイルでの私自身の答えです。ここでの秘訣は、nameof({myVariable})
ではなくnameof(myVariable)
のように、パラメータを中括弧で囲むことにより、オブジェクト内の関数名に渡すことです。
この規則に従うと、ソリューションは次のようになります。
var HD = HD || {};
HD.nameof = function (obj) {
return Object.keys(obj)[0];
}
そして、これは私が変数/オブジェクトの名前とオブジェクトのコンテンツ/変数の値を取得するためにそれを使用する方法です:
const s = HD.nameof({myVariable}) + ': ' + JSON.stringify(myVariable);
したがって、sには、上記の質問で要求された結果が含まれます。