JavaScript的对象系统如同一座动态迷宫,表面简洁却暗藏玄机。不同于传统静态语言,每个对象都是可变属性集合与原型链继承的结合体。
🔥 动态特性实战
let user = { name: 'Leo' };
user.age = 30; // 动态添加属性
user.greet = () => `Hello, ${this.name}!`; // 动态方法
🏗 构造函数与原型链
function Person(name) {
this.name = name;
}
Person.prototype.sayName = function() {
return this.name;
};
let me = new Person('Chris');
console.log(me.sayName()); // Chris
⚡ 属性描述符控制
let obj = {};
Object.defineProperty(obj, 'locked', {
value: true,
writable: false, // 不可改写
enumerable: false // 不可枚举
});
🚀 现代对象语法
const role = 'admin';
const user = {
role, // 属性简写
delete() { // 方法简写
return `${this.role} deleted item`;
},
[role + 'Access']: true // 计算属性名
};
对象的这种动态本性既是JavaScript的灵活性之源,也是复杂性的起点。掌握属性描述符、原型链继承和现代语法,才能真正驾驭这门语言的核心力量。

被折叠的 条评论
为什么被折叠?



