JavaScript高级属性之Object
閱讀時間:全文 391 字,預估用時 2 分鐘
創作日期:2022-04-27
上篇文章:nvim插件管理工具packer的使用
下篇文章:NeoVim-安装
BEGIN
Object.getOwnPropertyDescriptor(obj, prop)
用于获取对象属性的描述符(descriptor)的方法。描述符包括属性的可写性、可枚举性、可配置性等信息,该方法只返回对象其本身,不会获取原型链上的属性。
入参
obj
:要获取属性描述符的对象。prop
:要获取描述符的属性名。
返回
返回描述符(descriptor)对象
value
:属性的值。
writable
:属性是否可写。
enumerable
:属性是否可枚举。
configurable
:属性是否可配置。
get
:获取属性的方法(如果有 getter 的话)。
set
:设置属性的方法(如果有 setter 的话)。
其它
Object.defineProperty(obj, prop, descriptor)
用于获取对象属性的描述符(descriptor)的方法。描述符包括属性的可写性、可枚举性、可配置性等信息,该方法只返回对象其本身,不会获取原型链上的属性。
入参
obj
:要在其上定义属性的对象。prop
:要定义或修改的属性的名称。descriptor
:属性描述符对象,包含属性的特性。
描述符(descriptor)对象:
value
:属性的值。writable
:属性是否可写,默认为 false。enumerable
:属性是否可枚举,默认为 false。configurable
:属性是否可配置,默认为 false。get
:获取属性值的方法(getter)。set
:设置属性值的方法(setter)。
其它
Object.defineProperties(obj, props)
作用与Object.defineProperty(obj, prop, descriptor)
一样,但这个api处理的是多个属性的描述符的修改。
如下面示例的作用是一样的:
Object.defineProperty(window.navigator.webkitPersistentStorage, Symbol.toStringTag, {
configurable: true,
enumerable: false,
writable: false,
value: 'DeprecatedStorageQuota'
});
Object.defineProperties(window.navigator.webkitPersistentStorage, {
[Symbol.toStringTag]: {
configurable: true,
enumerable: false,
writable: false,
value: 'DeprecatedStorageQuota'
}
})
FINISH
上篇文章:nvim插件管理工具packer的使用
下篇文章:NeoVim-安装