javascript对象字面量是最常用创建单个对象的方式,支持任意类型属性和函数方法,其中普通函数的this指向调用对象,箭头函数则不绑定this;支持计算属性名、简写属性与方法,且属性默认可枚举、可修改、可删除。

JavaScript 中用对象字面量定义属性和方法是最常用、最直观的方式,语法简洁,可读性强,适合快速创建单个对象。
直接在花括号内声明属性和方法
属性可以是任意类型(字符串、数字、布尔值、数组、函数等),方法本质就是值为函数的属性。
示例:
const user = {
name: "张三",
age: 28,
isActive: true,
hobbies: ["读书", "游泳"],
// 方法:函数作为属性值
introduce() {
return `我是${this.name},今年${this.age}岁。`;
},
// 箭头函数不推荐用于方法(会丢失 this)
updateAge: (newAge) => {
this.age = newAge; // ❌ this 指向外层作用域,不是 user
}
};
注意:普通函数方法中 this 指向调用它的对象(如 user.introduce() 中的 this 就是 user),而箭头函数不绑定自己的 this,不适合定义需要访问对象自身属性的方法。
使用计算属性名动态设置键名
当属性名需在运行时确定(比如来自变量或表达式),可用方括号 [] 包裹表达式。
- 适用于键名含特殊字符、空格,或依赖变量
- 方法也可用计算属性名定义
const prefix = "user";
const role = "admin";
const config = {
[prefix + "Name"]: "李四",
[`is${role.charAt(0).toUpperCase() + role.slice(1)}`]: true,
[`get${role}Info`]() {
return `${this[`${prefix}Name`]} 是 ${role} 用户`;
}
};
console.log(config.userName); // "李四"
console.log(config.isAdmin); // true
console.log(config.getAdminInfo()); // "李四 是 admin 用户"
简写属性与方法(ES6+)
当变量名与属性名相同时,可省略冒号和值;函数方法也可省略 function 关键字和冒号。
const name = "王五";
const level = "高级";
const profile = {
name, // 等价于 name: name
level, // 等价于 level: level
sayHello() { // 等价于 sayHello: function() { ... }
return `你好,我是${this.name}`;
}
};
注意属性赋值顺序与可枚举性
对象字面量中后写的同名属性会覆盖前面的;所有通过字面量直接添加的属性默认是可枚举、可修改、可删除的(即 enumerable: true,writable: true,configurable: true)。
若需控制这些特性(如定义只读属性),需配合 Object.defineProperty() 使用,不属于字面量本身能力范围。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











