报错
用Object.defineProperties定义属性时报错: Uncaught TypeError: Property description must be an object: m
解决
这里的defineProperties应该改为defineProperty
defineProperty 和 defineProperties 的区别
-
Object.defineProperty
- 该方法会直接在一个对象上定义 一个 新属性,或者修改一个对象的现有属性
- 该方法有 三个 参数
Object.defineProperty(obj, prop, descriptor)- obj: 要定义属性的对象。
- prop: 要定义或修改的属性的名称或 Symbol 。
- descriptor: 要定义或修改的属性描述符。
let value = "这是值", obj = {} Object.defineProperty(obj, key, { configurable: false, enumerable: true, get() { return value }, set(newVal) { value = newValue } }) -
Object.defineProperties
- 方法直接在一个对象上定义 一个或多个 新的属性或修改现有属性
- 该方法有 两个
Object.defineProperties(obj, props)- obj: 在其上定义或修改属性的对象。
- props: 要定义其可枚举属性或修改的属性描述符的对象
let value = "这是值", obj = {} Object.defineProperties(obj, { username: { value: '小明', configurable: false, writable: true }, password: { value: '***', configurable: true, enumerable: true } })
本文深入探讨了JavaScript中使用Object.defineProperty和Object.defineProperties方法定义对象属性的细节,包括两者的区别及应用场景,通过实例展示了如何设置属性的配置和访问。
792

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



