JavaScript ES6 物件縮寫(Object Shorthand)介紹:給新手的指南

最後更新:2025年5月27日
JavaScript

當我們使用 JavaScript 開發應用程式時,幾乎每天都會處理大量的物件(Object)資料。

無論是設定 API 請求、建立表單資料、設計元件的 props,這些物件常常需要由變數組成:

const name = '小明';
const age = 18;

const user = {
  name: name,
  age: age,
};

在這種情況下,name: name 的寫法既重複又冗長。JavaScript ES6 引入的「Object Shorthand」語法,讓我們可以這樣寫:

const user = {
  name,
  age,
};

是不是清爽很多?這種寫法不僅更簡潔,也讓你更容易專注在資料結構本身。

什麼是 Object Shorthand?

Object Shorthand(物件縮寫)是一種當物件的屬性名稱與變數名稱相同時,可以省略重複書寫的語法。

一般語法 vs 縮寫語法

// 一般寫法
const title = '前端工程師';
const level = 2;

const job = {
  title: title,
  level: level,
};

// 縮寫語法
const job = {
  title,
  level,
};

只要物件屬性的 key 名稱和變數名稱相同,就可以使用縮寫語法。

使用條件與注意事項

可以縮寫的條件

const email = 'test@example.com';
const profile = {
  email, // ✅ 縮寫 OK,因為 key 名稱與變數一致
};

不能縮寫的情況:key 與變數名稱不同

const myEmail = 'test@example.com';
const profile = {
  email: myEmail, // ❌ 不能縮寫,key 與變數名稱不同
};

注意:縮寫不適用於運算式或動態 key

const keyName = 'username';
const username = '小明';

const user = {
  [keyName]: username, // ❌ 這是 Computed Property,不能縮寫
};

方法縮寫(Method Shorthand)

除了屬性外,物件中的**方法(函式)**也可以縮寫,讓物件看起來更像「類別」定義。

一般寫法

const user = {
  sayHi: function () {
    console.log('Hi!');
  },
};

方法縮寫

const user = {
  sayHi() {
    console.log('Hi!');
  },
};

這種方式對於撰寫類別風格的程式碼很有幫助,也讓物件看起來更一致與簡潔。

在函式回傳物件時的應用

Object Shorthand 最常見的應用場景之一,就是在函式中回傳一個物件。

一般寫法

function createUser(name, age) {
  return {
    name: name,
    age: age,
  };
}

縮寫寫法

function createUser(name, age) {
  return {
    name,
    age,
  };
}

這在處理 API 請求、事件回傳資料、整理輸出格式時特別常用。

搭配解構賦值的開發實例

Object Shorthand 和「解構賦值(Destructuring)」常常一起使用,讓資料的提取與建立變得快速高效。

const person = {
  name: '小明',
  age: 18,
};

// 解構
const { name, age } = person;

// 建立新物件
const info = {
  name,
  age,
};

這在撰寫 Redux 的 mapStateToProps、React 的元件 props 處理、Form 表單資料建構等非常實用。

其他應用情境

搭配 REST API 資料處理

const title = '文章標題';
const content = '內文內容';

fetch('/api/posts', {
  method: 'POST',
  body: JSON.stringify({ title, content }), // 👈 Object Shorthand
});

搭配 React setState 更新

const [state, setState] = useState({ name: '', age: 0 });

function handleUpdate(name, age) {
  setState({ name, age }); // 👈 Object Shorthand
}

小測驗:你會用 Object Shorthand 嗎?

將下列程式碼改寫為使用 Object Shorthand:

const title = '全端工程師';
const salary = 90000;

const job = {
  title: title,
  salary: salary,
};

✅ 答案:

const job = {
  title,
  salary,
};

常見錯誤與陷阱

錯誤範例email: userEmail
原因無法縮寫
錯誤範例[key]: value
原因不能縮寫
錯誤範例info: { name }
原因外層 info 不能簡寫為 info: { name },除非 info 是變數

結語:讓程式碼更現代、更易讀的秘密武器

Object Shorthand 是 JavaScript ES6 提供的一項超級實用的語法糖,能有效簡化物件建立的重複語法、提升開發效率。

✅ 快速複習:

  • 變數名稱與 key 相同 → 可縮寫
  • 方法定義 → 可使用縮寫語法
  • 適合搭配函式回傳、API 建構、React props 處理

✨ 寫出乾淨、現代化的 JavaScript,從掌握 Object Shorthand 開始!