Node.js は、Web アプリケーション、Web サーバー、コマンド ライン アプリケーションなどの作成に使用できる非常に人気のあるバックエンド プログラミング言語です。 Node.js では、渡されたオブジェクトを分析してプロパティやメソッドの一部を取得する必要があることが多いため、オブジェクト名を取得することも非常に重要です。次に、この記事ではオブジェクト名を取得する方法をいくつか紹介します。
JavaScript では、typeof キーワードを使用して変数の型を取得できますが、オブジェクトも例外ではありません。 typeof 演算子を使用すると、オブジェクトがオブジェクト型であるかどうかを判断でき、オブジェクト型である場合は、その toString メソッドを使用してオブジェクトの名前を取得できます。
var obj = {name:'Node.js'}; console.log(typeof obj); // 输出 "object" console.log(obj.toString()); // 输出 "[object Object]"
上記のコードからわかるように、typeof 演算子を使用して、obj の型が object であることを確認します。obj が属するクラス名は Object であるため、出力結果は "[object Object] 」。
typeof キーワードを直接使用してオブジェクトの種類を決定することに加えて、コードをより読みやすく簡潔にするために関数の層をラップすることでオブジェクト名を取得するプロセスをカプセル化することもできます。
function getObjectName(obj) { return Object.prototype.toString.call(obj).slice(8, -1); } var obj = {name:'Node.js'}; console.log(getObjectName(obj)); //输出 "Object"
上記の getObjectName 関数は、オブジェクト名を取得するプロセスをカプセル化しています。それにオブジェクト obj を渡します。まず、Object.prototype.toString.call(obj) を通じて、obj が属するクラス名を取得します。このメソッドはクラス名文字列の部分文字列を取得します。つまり、必要なオブジェクト名を取得します。
JavaScript では、各関数にはコンストラクター属性があり、それを通じて関数のコンストラクターを取得できるため、オブジェクトのコンストラクター属性を使用して次のことを行うことができます。このオブジェクトの名前を取得します。以下は例です:
function Person(name, age) { this.name = name; this.age = age; } var p = new Person('Tom', 18); console.log(p.constructor.name); // 输出 "Person"
上記のコードでは、Person 関数を定義し、new キーワードを使用してオブジェクト p を作成します。その後、p.constructor.name コンストラクター名を使用してオブジェクトを取得できます。 、それは「人」です。
コンストラクター属性を使用してオブジェクト名を取得するのは非常に簡単ですが、このメソッドはコンストラクターを通じて作成されたオブジェクトにのみ適用され、一般のオブジェクトには無効であることに注意してください。
Object.keys() メソッドは、オブジェクト自身のプロパティの名前を取得できます。オブジェクトのプロパティ名がすでにわかっている場合は、属性名を使用してオブジェクトの属性の値を取得することで、オブジェクト名を取得できます。例:
var obj = { name: "Tom", age: 18 }; var propName = Object.keys(obj)[0]; console.log(propName); // 输出 "name" console.log(obj[propName]); // 输出 "Tom"
上記のコードでは、まず Object.keys() メソッドを使用して obj オブジェクトの属性名の配列を取得し、次に配列添字を使用して最初の属性の名前を取得します。属性 (つまり、「name」) を取得し、obj["name"] を使用して属性の値 (つまり、「Tom」) を取得します。
この方法はオブジェクトの属性が 1 つの場合にのみ適用できるため、オブジェクトが複数の属性を持つ場合、オブジェクト名を正確に取得できないことに注意してください。
Object.prototype.toString() メソッドは、オブジェクトの文字列表現を返すことができます。特定のメソッドと typeof 演算子は、オブジェクト名。同様の方法で、これを使用してオブジェクトの名前を取得することもできます。
var obj = {name: "Node.js"}; console.log(Object.prototype.toString.call(obj)); // 输出 "[object Object]"
上記のコードでは、Object.prototype.toString.call(obj) を通じてオブジェクトの文字列表現を取得し、その文字列からオブジェクトの名前を解析できます。
このメソッドは、オブジェクトの属性が 1 つだけの場合にのみ適用できることに注意してください。
Node.js プログラミングでは、オブジェクトの名前を取得する必要がよくあります。この記事では、オブジェクトの名前を取得するためによく使用される 4 つのメソッドを紹介します。
最大限の使用効果を得るには、特定の状況に応じて適切な方法を選択する必要があります。この記事がお役に立てば幸いです。
以上がNodejsでオブジェクト名を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。