对象属性特性介绍

作者: 曲昶光 | 来源:发表于2021-09-07 13:03 被阅读0次

一、对象属性由下面特性组成的:

value
该属性的值(仅针对数据属性描述符有效)
writable
当且仅当属性的值可以被改变时为true。(仅针对数据属性描述有效)
get
获取该属性的访问器函数(getter)。如果没有访问器, 该值为undefined。(仅针对包含访问器或设置器的属性描述有效)
set
获取该属性的设置器函数(setter)。 如果没有设置器, 该值为undefined。(仅针对包含访问器或设置器的属性描述有效)
configurable
当且仅当指定对象的属性描述可以被改变或者属性可被删除时,为true。
enumerable
当且仅当指定对象的属性可以被枚举出时,为 true。

二、属性分为两种类型:1数据属性 2访问器属性。

1.怎样知道这个属性到底是数据属性还是访问器属性?
利用Object.getOwnPropertyDescriptor(obj,“属性名”)获取一个对象的属性的特性,该方法会返回一个对象,

当是访问器属性时,该对象属性有enumerable,configurable,get,set。
当是数据属性,该对象属性有value,writable,enumerable,configurable。

//数据属性
const object1 = {
  property1: 42
};

const descriptor1 = Object.getOwnPropertyDescriptor(object1, 'property1');

console.log(descriptor1);//Object { value: 42, writable: true, enumerable: true, configurable: true }

//访问器属性
const descriptor2=Object.getOwnPropertyDescriptor(window,'name')
console.log(descriptor2);//Object { get: function get name() { [native code] }, set: function set name() { [native code] }, enumerable: true, configurable: true }

三、修改或添加对象属性特性

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。

//添加数据属性
const object1 = {};

Object.defineProperty(object1, 'property1', {
  value: 42,
  writable: true
});

object1.property1 = 77;

console.log(object1.property1);//77

//添加访问器属性
const object2 = {};
Object.defineProperty(object2,'haha',{
get(){
return 22
}
})
console.log(object2.haha);//22

相关文章

  • 对象属性特性介绍

    一、对象属性由下面特性组成的: value该属性的值(仅针对数据属性描述符有效)writable当且仅当属性的值可...

  • javascript对象的属性介绍

    本篇主要介绍JS中对象的属性,包括:属性的分类、访问方式、检测属性、遍历属性以及属性特性等内容。 属性:对象的成员...

  • 对象属性特性

    1. 对象属性特性 对象由属性组成。属性创建时会带有一些特征值,用来描述属性。 根据对象属性特性,属性分两种——数...

  • Javascript 面向对象(创建对象)

    创建对象 对象属性默认特性 四中数据属性特性 [[Configurable]] // 能否delete 默认tr...

  • bom的总结2:location对象

    Location对象 location特性:既是window对象的属性,也是document对象的属性,windo...

  • jQueryDom的操作(2)

    第二章 对jQuery对象的属性、特性以及数据的操作 操作元素的特性和属性值 元素的特性和属性 特性attribu...

  • JS 对象

    文章将会对对象属性特性,原型链,对象拷贝进行说明。 一、JavaScript属性的可迭代、可修改和可配置特性 作者...

  • Vue简单入门(二)

    一、Vue中的属性! 属性的特性:是否可读可写;是否可被遍历;是否可被删除。 描述对象来描述这些特性---描述对象...

  • 重识iOS之Property

    Property的介绍 简介:属性(property)是Objective-C的一项特性,用于封装对象中的数据。这...

  • IOS-Property记录

    Property的介绍 简介:属性(property)是Objective-C的一项特性,用于封装对象中的数据。这...

网友评论

    本文标题:对象属性特性介绍

    本文链接:https://www.haomeiwen.com/subject/vbaewltx.html