对象字面量是JavaScript创建对象最直接方式,用{}包裹键值对,支持属性/方法简写、计算属性名等ES6特性,需注意键名规则、未声明变量引用及箭头函数this指向问题。

对象字面量是 JavaScript 中创建对象最直接、最常用的方式,用一对大括号 {} 包裹键值对即可,适合单例、配置项或临时数据结构。
基础写法与键名规则
键和值之间用冒号 : 分隔,多个键值对用逗号 , 隔开。键名是否加引号取决于是否符合标识符规范:
- 合法标识符(如
name、isValid、userAge)可省略引号 - 含空格、短横线、数字开头或保留字的键必须加引号,例如
"full-name"、"123id"、"class" - 末尾逗号(trailing comma)在现代环境支持,但旧版 IE 不兼容,团队中建议统一风格
属性与方法的简写形式
ES6 起支持更紧凑的写法,提升可读性与开发效率:
-
属性简写:变量名与属性名相同时,可只写一次,如
const name = "Alice"; const obj = { name }; -
方法简写:省略
function关键字,如greet() { console.log("Hi"); } -
计算属性名:用方括号包裹表达式动态生成键,如
{ [`user_${id}`]: data }
常见错误与注意事项
看似简单,但几个细节容易引发运行时问题:
立即学习“Java免费学习笔记(深入)”;
- 不能直接使用未声明变量作为属性值,例如
{ x: y }中若y未定义,会抛出ReferenceError - 箭头函数作为对象方法时,
this不指向当前对象,慎用——应优先使用普通函数或方法简写 - 对象字面量本质是
new Object()的语法糖,所有实例都继承自Object.prototype
空对象与后续扩展
可先创建空对象,再逐步添加属性和方法:
-
const user = {};创建空对象 -
user.name = "Tom";动态添加属性 -
user.sayHi = function() { console.log("Hello"); };添加方法 - 也可用方括号语法处理特殊键名:
user["full-name"] = "Tom Smith";


















