0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[JavaScript][Object Methods] Objectメソッドとは

Posted at

概要

Object組み込みのグローバルオブジェクト で、JavaScriptにおけるオブジェクト操作の基本を提供します。
Object メソッドは、オブジェクトのキー(プロパティ名)や値の取得、コピー、マージ、凍結などを行うためのスタティックメソッドです。

つまり、

  • Object メソッドは「オブジェクトの構造や情報を操作するための静的メソッド」
  • 直接 Object. から呼び出す(インスタンスメソッドではない)

という特徴を持ちます。

目次

基本構文

JavaScript
// Objectメソッドの例
const user = { name: "Alice", age: 25 };

// すべてのキーを取得
console.log(Object.keys(user));   // ["name", "age"]

// すべての値を取得
console.log(Object.values(user)); // ["Alice", 25]

// キーと値をペアで取得
console.log(Object.entries(user)); // [["name", "Alice"], ["age", 25]]
  • 対象: オブジェクト
  • 戻り値: 配列(キー・値・エントリなど)
  • 用途: オブジェクトの中身を配列形式で操作したいとき

Objectメソッドの種類

Object.keys

JavaScript
const person = { name: "Bob", age: 30 };
console.log(Object.keys(person)); 
// ["name", "age"]
  • オブジェクトの キー名(プロパティ名) を配列で返す
  • ループ処理に利用されることが多い

Object.values

JavaScript
const person = { name: "Bob", age: 30 };
console.log(Object.values(person));
// ["Bob", 30]
  • オブジェクトの 値(プロパティ値) を配列で返す
  • 値を一覧処理したいときに便利

Object.entries

JavaScript
const person = { name: "Bob", age: 30 };
console.log(Object.entries(person));
// [["name", "Bob"], ["age", 30]]
  • オブジェクトを キーと値のペア配列 に変換する
  • Mapfor...of との相性が良い

Object.assign

JavaScript
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const merged = Object.assign(target, source);

console.log(merged); // { a: 1, b: 4, c: 5 }
  • オブジェクトを コピー・結合 する
  • 同じキーがあれば上書きされる
  • 元のオブジェクト(target)も変更される点に注意

Object.freeze

JavaScript
const user = { name: "Alice" };
Object.freeze(user);

user.name = "Bob"; // 無視される(変更不可)
console.log(user.name); // "Alice"
  • オブジェクトを 凍結(変更不可) にする
  • プロパティの追加・削除・変更ができなくなる

Object.hasOwn

JavaScript
const user = { name: "Alice" };
console.log(Object.hasOwn(user, "name")); // true
console.log(Object.hasOwn(user, "age"));  // false
  • 指定したキーがオブジェクト自身に存在するかどうかを確認する
  • プロトタイプ継承されたキーは含まれない

比較結果

メソッド 戻り値 主な用途 元オブジェクトの変更
Object.keys キー配列 プロパティ名一覧を取得 なし
Object.values 値配列 値の一覧を取得 なし
Object.entries [key, value] 配列 ループ処理などに利用 なし
Object.assign 結合済オブジェクト コピー・マージ あり(注意)
Object.freeze 凍結されたオブジェクト データ保護 不可
Object.hasOwn 真偽値 キー存在確認 なし

活用例

1. オブジェクトのキーをループ処理

JavaScript
const user = { name: "Alice", age: 25, city: "Tokyo" };

Object.keys(user).forEach(key => {
  console.log(`${key}: ${user[key]}`);
});

// 出力
// name: Alice
// age: 25
// city: Tokyo

2. entriesでMapに変換

JavaScript
const obj = { a: 1, b: 2, c: 3 };
const map = new Map(Object.entries(obj));

console.log(map.get("b")); // 2

3. 複数オブジェクトの結合

JavaScript
const base = { id: 1 };
const info = { name: "Alice" };
const status = { active: true };

const result = Object.assign({}, base, info, status);
console.log(result); // { id: 1, name: "Alice", active: true }

4. 凍結オブジェクトの安全利用

JavaScript
const config = Object.freeze({
  apiUrl: "https://example.com",
  timeout: 5000
});

// 変更しようとしても反映されない
config.apiUrl = "https://malicious.com";
console.log(config.apiUrl); // "https://example.com"

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?