JavaScript创建对象有字面量、构造函数、Object.create()、class和工厂函数五种方式;属性描述符分数据型(value/writable)和存取型(get/set),含configurable、enumerable等通用字段,用于精细控制属性行为。

JavaScript 中创建对象有多种方式,每种方式适用于不同场景;而属性描述符则用于精细控制对象属性的行为,比如是否可修改、是否可枚举、是否可配置等。
常见对象创建方式
最常用、最基础的创建方式包括:
-
对象字面量:最简洁直观,适合创建单个简单对象。
const obj = { name: "Alice", age: 30 }; -
构造函数(new Object()):语义明确但冗长,日常较少用。
const obj = new Object(); obj.name = "Alice"; -
Object.create():显式指定原型,适合需要自定义原型链的场景。
const proto = { sayHi() { return "Hi!"; } }; const obj = Object.create(proto); -
类(class)语法:ES6 引入,本质仍是基于原型的构造函数,适合面向对象建模。
class Person { constructor(name) { this.name = name; } } -
工厂函数:返回新对象,避免 new 和 this 问题,常用于封装创建逻辑。
function createPerson(name) { return { name, getName() { return this.name; } }; }
属性描述符类型
每个对象属性都有对应的描述符,分为两类:
-
数据描述符:具有
value和writable,用来定义普通属性值和写权限。
例如:Object.defineProperty(obj, 'age', { value: 25, writable: false }); -
存取描述符:具有
get和set,用于拦截读写操作,实现响应式或计算属性。
例如:Object.defineProperty(obj, 'fullName', { get() { return this.first + ' ' + this.last; } });
二者不可混用——不能同时设置 value 和 get,否则会报错。
立即学习“Java免费学习笔记(深入)”;
标签: javascript es6 java js json
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~